تکنولوژی

آموزش غیرفعال کردن و حذف دائمی SWAP در لینوکس

در سیستم عامل لینوکس از حافظه‌ی SWAP به عنوان حافظه‌ی اضافی برای فرآیند‌های سیستمی استفاده می‌شود. در واقع اگر حافظه‌ی رم سیستمی کم باشد، لینوکس از رم مجازی یا همان SWAP استفاده می‌کند تا مشکلی در پردازش‌ها به وجود نیاید و سیستم هنگ نکند. بنابراین پارتیشن یا فایل SWAP در سیستم‌های لینوکسی بسیار مهم است و نباید در حالت عادی آن را غیرفعال کرد.

در سیستم‌هایی با RAM زیاد و کافی، نیازی به SWAP نیست و کاربر می‌تواند این بخش را حذف کند و از تمام ظرفیت هارددیسک یا SSD استفاده کند. در این مقاله به روش غیرفعال کردن و حذف کامل فایل یا پارتیشن SWAP در لینوکس می‌پردازیم.

در سیستم‌های سریع و مدرن امروزی که حافظه‌ی رم ظرفیت بالایی دارد و از طرف دیگر به جای هارددیسک از SSD استفاده شده، حذف کردن پارتیشن یا فایل مربوط به رم مجازی که SWAP نام دارد، معمولاً تصمیم خوبی است. توجه کنید که ظرفیت SSDها مثل هارددیسک‌های ارزان چند ترابایتی زیاد نیست و ممکن است کمبود فضا در پارتیشنی که لینوکس و نرم‌افزارها نصب شده، برای کاربر مطرح باشد. در این صورت حذف کردن SWAP حتی ضروری به نظر می‌رسد.

در مقابل در کامپیوترهای قدیمی‌تر که RAM ظرفیت کمتری دارد و ممکن است با کمبود رم روبرو شویم، قطعاً حذف کردن SWAP توصیه نمی‌شود مگر در شرایط خاص.

حذف کردن پارتیشن یا فایل SWAP کمی پیچیده است لذا در این مطلب به روش حذف کردن آن می‌پردازیم و بدون ایجاد خلل در عملکرد سیستم، SWAP را غیرفعال کرده و سپس به صورت دائمی حذف می‌کنیم.

چک کردن پارتیشن‌های SWAP‌ فعال در لینوکس

قبل از هر چیز می‌بایست فعال بودن پارتیشن یا فایل‌های SWAP بررسی شود. برای این منظور می‌توانید فایلی در مسیر زیر را بررسی کنید. در این فایل لیست حافظه‌هایی که به عنوان SWAP تعریف شده و فعال هستند، موجود است.

/proc/swap

برای باز کردن فایل فوق، از دستور cat در اپلیکیشن Terminal لینوکس استفاده کنید. البته ممکن است نیاز به اجرای این دستور با دسترسی root باشد و لذا می‌بایست sudo را به دستور اضافه کنید.

بنابراین اپلیکیشن ترمینال را اجرا کنید و دستور زیر را تایپ کرده و Enter را فشار دهید:

و در صورت نیاز از دستور زیر استفاده کنید که فرمان sudo در آن اضافه شده است:

بسته به ستاپ سیستم لینوکسی شما، ممکن است یک پارتیشن فعال در نقش SWAP یا یک فایل در فولدر روت در این نقش وجود داشته باشد. بهتر است فایلی که باز کرده‌اید را برای بررسی‌های بعدی ذخیره کنید و نگه‌ دارید. برای این منظور از دستور زیر در ترمینال استفاده کنید تا بدون باز کردن فایل، محتویات آن در یک فایل متنی ساده ذخیره شود.

اگر مسیر خاصی برای فایل در نظر گرفته‌اید و همین‌طور به دسترسی روت نیاز است، از فرمان زیر استفاده کنید و در بخش آخر، آدرس فولدر فایل TXT را به دلخواه تغییر بدهید:

روش حذف SAWP در لینوکس

برای شروع کار، یک شل با دسترسی روت باز کنید. دسترسی روت برای دستکاری و تغییر در فایل یا پارتیشن SWAP ضروری است. برای این منظور دستور زیر را در ترمینال اجرا کنید:

البته می‌توانید از دستور sudo -s نیز در صورت کار نکردن فرمان فوق استفاده کنید.

حال می‌بایست فرمان swapoff را اجرا کنید. پس از این دستور، آدرس فایل یا پارتیشن SWAP قرار می‌گیرد که در مرحله‌ی قبلی به روش چک کردن آن اشاره کردیم. بنابراین در فرمان زیر به جای swapfile، نام پارتیشن یا فایل موردبحث را قرار دهید:

در مورد پارتیشن SWAP نیز به مثال زیر توجه کنید که نام و مسیر پارتیشن /dev/sdXY است. می‌بایست نام و مسیر پارتیشن با توجه به اطلاعات به دست آمده از فایل /proc/swap جایگزین شود.

به این ترتیب پارتیشن یا فایل SWAP به سادگی غیرفعال شده است. البته پس از ری‌استارت کردن سیستم، مجدداً SWAP‌ فعال می‌شود! لذا قبل از ریبوت کردن سیستم، می‌بایست آن را به صورت کامل حذف کنید.

حذف دائمی فایل SWAP در لینوکس

در لینوکس‌های مدرن و امروزی، به جای پارتیشن SWAP از فایل SWAP استفاده می‌شود و طبعاً حذف کردن آن ساده‌تر است. برای حذف کردن فایل رم مجازی یا SWAP می‌بایست از دستور rm استفاده کنید. به دسترسی روت نیاز است و همین‌طور می‌بایست نام فایل را پیشاپیش بررسی کرده باشید.

بنابراین برای حذف کردن فایل SWAP در ترمینال دستورات زیر را اجرا کنید و توجه کنید که swapfile می‌بایست با نام و آدرس فایل SWAP جایگزین شود:

و در ادامه فایلی در مسیر /etc/fstab را باز کنید و خطی که مربوط به پارتیشن SWAP است را حذف کنید. برای باز کردن این فایل توسط اپلیکیشن Nano Text Editor از دستور زیر در ترمینال استفاده کنید:

در نهایت برای ذخیره کردن فایل از Ctrl + O و برای بستن اپلیکیشن ویرایش متن از کلید میانبر Ctrl + X استفاده کنید.

روش حذف دائمی پارتیشن SWAP

در مورد پارتیشن SWAP می‌توانید برای ساده‌تر شدن کار، از نرم‌افزارهای پارتیشن‌بندی مثل Gparted استفاده کنید. این اپلیکیشن معروف تقریباً برای تمام توزیعات مختلف لینوکس منتشر شده است.

دانلود Gparted برای توزیعات مختلف لینوکس

اگر از لینوکس Fedora یا لینوکس‌های دارای LVM استفاده می‌کنید، می‌توانید از اپلیکیشن KDE Partition manager استفاده کنید.

دانلود KDE Partition manager

پس از نصب و اجرای Gparted، پارتیشن SWAP را پیدا کنید و با راست‌کلیک و انتخاب Delete آن را حذف کنید.

در ادامه روی Apply کلیک کنید تا تغییرات پارتیشن‌ها عملیاتی شود. به این ترتیب بخشی از حافظه خالی می‌شود.

اکنون اپلیکیشن Gparted را ببندید و مجدداً ترمینال لینوکس را اجرا کنید و فایل /etc/fstab را در اپلیکیشن ویرایش متن باز کنید.

خط مربوط به پارتیشن SWAP را حذف کنید و فایل را ذخیره کنید و اپلیکیشن ویرایش متن را ببندید.

بازسازی فایل‌های بوت لینوکس

پس از حذف کردن SWAP، می‌بایست ایمیج بوت لینوکس را مجدداً ایجاد کنید. برای این مقصود می‌بایست از دستوراتی استفاده کرد که بسته به توزیع نصب شده متفاوت است. در مورد چند توزیع محبوب لینوکس، دستور موردنیاز به این صورت است:

  • Ubuntu: sudo update-initramfs -u
  • Debian: sudo update-initramfs -u
  • Arch Linux: sudo mkinitcpio -p linux
  • Fedora: sudo dracut –regenerate-all –force
  • OpenSUSE: sudo mkinitrd

زمانی که initramfs تکمیل شد، سیستم را ری‌استارت کنید.

 


” alt=”نحوه غیر فعال کردن swap” width=”283″ height=”122″ data-lazy-src=”https://bneh.ir/wp-content/uploads/2022/08/how-disable-swap-on-linux.jpg” />

در این جلسه به نحوه غیر فعال کردن swap در لینوکس خواهیم، swap یک بخشی از فضای هارد دیسک می‌باشد که وظیفه آن کمک به رم سخت‌افزاری سرور در مواقع بحرانی است.

اگر تعداد درخواست‌ها به سمت سرور بیش از مقدار پاسخ‌دهی رم تعیین شده باشد سرور دو راه برای حل آن پیش رو خواهد داشت ابتدا آنکه توسط تدابیری این مشکل را حل کرده و لود را کنترل کند و یا به طور کامل سرور از دسترس خارج شود.

وجود پارتیشن swap در لینوکس راهکاری منطقی و مناسب برای سرورهایی است که از رم سخت‌افزاری کافی بهره‌مند نیستند، در این موارد با بالا رفتن مصرف رم سرور و رسیدن به آستانه crash پارتیشن swap وارد عمل شده و مقداری از درخواست‌ها بر روی آن بارگذاری می‌شود.

البته swap هیچ‌گاه به خوبی ram در سرور عمل نخواهد کرد و سرعت به مراتب کمتری هم دارد ولی در موارد اضطراری می‌توان کمک خوبی برای ایستایی سرور باشد.

در این آموزش قصد داریم تا به نحوه غیر فعال کردن swap بپردازیم، شاید برایتان سؤال شود این‌همه تعریف از swap کردیم حالا چه لزومی داره تا این پارتیشن رو غیر فعال کنیم، همان‌طور که در بالا گفتم swap دارای سرعت بسیار کمی نسبت به رم می‌باشد همین امر می‌تواند مهم‌ترین دلیل برای غیر فعال کردن آن باشد.

شاید شما به اندازه کافی رم بر روی سرور خود دارید و تعداد پروسه‌های سرور هرگز نتواند فشاری بر آن وارد کند در این‌جور مواقع می‌توان با حذف swap فضای هارد بیشتری ر ا بر روی سرور داشت.

مراحل غیر فعال کردن swap در لینوکس

در ابتدا قبل از انجام هر کاری باید بررسی کنید که آیا مقدار کافی Ram بر روی سرور شما موجود هست، آیا فضای swap کنونی شما به دلیل کمبود رم وارد مدار نشده و استفاده نشده است. بدین منظور دستور زیر را در محیط ssh وارد کنید. اگر هم با دستورات لینوکس آشنایی ندارید از آموزش دستورات لینوکس می توانید استفاده کنید

free -h

used-غیر فعال کردن swap

اگر مقدار used برای swap برابر ۰ بود یعنی اینکه سرور شما بدون نیاز به swap فعالیت کرده و شما می‌توانید برای غیر فعال کردن swap اقدام کنید. ولی در عکس بالا مقداری از swap توسط سرور استفاده شده است.

در مرحله بعد با زدن دستور زیر پارتیشن مربوط به swap را شناسایی می‌کنیم. در خطی که TYPE=swap وجود داشت یعنی آن پارتیشن برای swap به صورت رزرو شده درآمده است.

اگر با دستور بالا نتوانستید پارتیشن swap را پیدا کنید می‌توانید از دستور زیر برای این کار استفاده کنید.

lsblk

بعد از اینکه توسط دستورات بالا پارتیشن swap را شناسایی کردید می‌توانید توسط دستور زیر اقدام به غیر فعال کردن swap در لینوکس centos کنید.

swapoff /dev/mapper/centos-swap

مشخصاً باید به جای /dev/mapper/centos-swap/ باید آدرس پارتیشن خود را جایگزین کنید.

اگر هم بر روی سرور چند پارتیشن swap داشته باشید می‌توانید با دستور زیر تمامی swap سرور را غیر فعال کنید

swapoff -a

حال دستور زیر را مجدد وارد کنید، اگر مقدار swap برابر ۰ شده بود یعنی به درستی عمل غیر فعال کردن swap در سرور شما انجام شده است.

free -h

اگر هم می‌خواهید با هر بار ریبوت سرور تغییرات باز نشانی نشوند و swap بر روی سرور شما به صورت دائم غیر فعال شود فایل fstab را با دستور زیر ادیت کنید و خط مربوط به swap را با اضافه کردن علامت # در ابتدای خط غیر فعال کنید.

vi /etc/fstab

خوب به همین راحتی توانستید با غیر فعال کردن swap سرعت سرور را افزایش داده و کندی swap خلاص شوید.