1. مستندات
  2. سرور مجازی
  3. لینوکس
  4. بدون کنترل‌پنل
  5. ایجاد و فعال‌سازی Swap Memory در سرور لینوکسی

ایجاد و فعال‌سازی Swap Memory در سرور لینوکسی

Calendar

انتشار:

1404/08/09
Update Calendar

به روز رسانی:

1404/08/09

در این راهنما می‌خواهیم نحوه ایجاد و فعال‌سازی حافظه‌ی Swap را در سرور لینوکسی توضیح دهیم تا در مواقعی که رم (RAM) سرور پر می‌شود، سیستم بتواند از فضای دیسک به‌عنوان حافظه موقت استفاده کند و پایداری سرویس‌ها حفظ شود.

مرحله اول: بررسی وجود فضای Swap

بعد از ورود از طریق SSH، ابتدا باید بررسی کنید که آیا سیستم شما در حال حاضر Swap فعال دارد یا خیر. برای این کار دستور زیر را در ترمینال وارد کنید:

swapon --show

اگر خروجی این دستور خالی بود، یعنی در حال حاضر هیچ Swap فعالی وجود ندارد و باید آن را ایجاد کنید. اما اگر خروجی شامل مسیر فایلی مانند /swapfile یا یک پارتیشن خاص بود، یعنی سیستم در حال حاضر از Swap استفاده می‌کند.
در ادامه فرض می‌کنیم Swap غیرفعال است و می‌خواهیم آن را از ابتدا بسازیم.

نمای خروجی دستور swapon

مرحله دوم: بررسی فضای آزاد دیسک

قبل از ایجاد Swap باید مطمئن شوید فضای کافی در دیسک سرور برای ساخت فایل جدید وجود دارد. برای مشاهده فضای موجود می‌توانید از دستور زیر استفاده کنید:

df -h

در خروجی این دستور، ستون Available میزان فضای آزاد را نشان می‌دهد. اگر قصد دارید یک Swap با حجم ۲ گیگابایت بسازید، باید حداقل به همین مقدار فضای خالی در دیسک داشته باشید. اگر فضای آزاد کافی نیست، باید ابتدا فایل‌ها یا لاگ‌های غیرضروری را حذف کنید.

نمای خروجی df -h و بررسی فضای خالی

مرحله سوم: ایجاد فایل Swap

در این مرحله فایل اصلی Swap را ایجاد می‌کنیم. این فایل در واقع همان فضایی از دیسک است که سیستم در آینده به‌عنوان حافظه‌ی مجازی از آن استفاده می‌کند. برای ایجاد فایل ۲ گیگابایتی، از دستور زیر استفاده کنید:

sudo fallocate -l 2G /swapfile

در برخی توزیع‌ها مانند CentOS ممکن است دستور fallocate در دسترس نباشد. در این صورت می‌توانید از دستور جایگزین زیر استفاده کنید:

sudo dd if=/dev/zero of=/swapfile bs=1M count=2048

ایجاد فایل swapfile در مسیر root

مرحله چهارم: تنظیم سطح دسترسی فایل Swap

برای امنیت بیشتر، باید دسترسی فایل Swap را محدود کنید تا سایر کاربران نتوانند به آن دسترسی داشته باشند. برای این منظور دستور زیر را وارد کنید:

sudo chmod 600 /swapfile

این دستور باعث می‌شود فقط کاربر root به فایل دسترسی داشته باشد.

نمای تنظیم سطح دسترسی با chmod

مرحله پنجم: فعال‌سازی Swap

در این مرحله فایل ساخته‌شده را به سیستم معرفی و فعال می‌کنیم. ابتدا با دستور زیر آن را به فرمت Swap تبدیل کنید:

sudo mkswap /swapfile

سپس با دستور زیر آن را فعال نمایید:

sudo swapon /swapfile

برای اطمینان از فعال شدن Swap، دستور swapon --show را دوباره اجرا کنید. اگر مسیر /swapfile در خروجی نمایش داده شد، یعنی Swap به درستی فعال شده است.

نمای خروجی موفقیت‌آمیز فعال‌سازی swap

مرحله ششم: فعال‌سازی دائمی Swap

برای اینکه Swap پس از ریبوت هم فعال بماند، باید مسیر آن را در فایل fstab اضافه کنید. بنابراین دستور زیر را اجرا نمایید:

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

از این پس با هر بار راه‌اندازی سرور، Swap به‌طور خودکار فعال خواهد شد.

ویرایش فایل fstab

مرحله هفتم: تنظیم مقدار Swappiness

مقدار swappiness تعیین می‌کند که سیستم چه زمانی از Swap نسبت به RAM استفاده کند. مقدار پیش‌فرض معمولاً ۶۰ است، اما برای VPSها بهتر است روی ۱۰ تا ۲۰ تنظیم شود.

برای تنظیم موقت مقدار swappiness از دستور زیر استفاده کنید:

sudo sysctl vm.swappiness=10

و اگر می‌خواهید این مقدار به‌صورت دائمی ذخیره شود، دستور زیر را وارد کنید:

echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf

تنظیم مقدار swappiness

مرحله هشتم: بررسی وضعیت نهایی Swap

در پایان می‌توانید با دستور زیر وضعیت حافظه‌ی RAM و Swap را بررسی کنید:

free -h

در خروجی، بخش Swap باید مقدار فعال جدید را نمایش دهد.

نمای خروجی free -h

در نتیجه، با انجام مراحل بالا توانستید به‌صورت کامل حافظه‌ی Swap را در VPS لینوکسی خود ایجاد و فعال کنید. این کار به افزایش پایداری و جلوگیری از کندی سرور در زمان افزایش مصرف حافظه کمک می‌کند و عملکرد کلی سیستم را بهبود می‌دهد.

آیا توانستیم چالش شما را حل کنیم؟