</>

لینوکس‌پارسی

مرجع فارسی آموزش لینوکس

Gentoo • Arch • Debian • Ubuntu • Kali • Parrot
پرش به محتوای اصلی

Command Palette

Search for a command to run...

Swap — فضای تعویض حافظه

آشنایی با swap، اندازه مناسب، ساخت پارتیشن یا فایل swap و تنظیم swappiness.

مقدماتی۶ دقیقه مطالعهآخرین بروزرسانی: ۱ تیر ۱۴۰۵ویرایش در گیت‌هاب

Swap چیست؟#

Swap فضایی روی دیسک است که هنگام پر شدن RAM برای نگهداری موقت داده‌های کم‌استفاده به‌کار می‌رود. هنگامی که سیستم به RAM بیشتری نیاز دارد، صفحاتی را که مدت‌ها به آن‌ها دسترسی نشده به swap می‌فرستد و RAM را برای پردازش‌های فعال آزاد می‌کند.

Swap دو شکل دارد: پارتیشن swap (یک پارتیشن اختصاصی) یا فایل swap (یک فایل روی فایل سیستم ریشه).

Swap امروزه ضروری است؟

با RAM زیاد (مثلاً ۳۲ گیگابایت یا بیشتر) شاید فکر کنید swap دیگر نیازی نیست؛ با این حال، swap همچنان برای hibernation، جلوگیری از خطای OOM (Out of Memory) و حفظ پایداری سیستم در اوج مصرف مفید است.

پارتیشن swap یا فایل swap؟#

ویژگیپارتیشن swapفایل swap
سرعتکمی سریع‌ترتقریباً مشابه (روی SSD)
انعطاف‌پذیریثابت، نیاز به پارتیشن‌بندیقابل تغییر اندازه
پشتیبانی hibernationبلهبله (با پیکربندی صحیح)
استفاده از دیسکاختصاصیروی فایل سیستم ریشه
مناسب براینصب تازهاضافه‌کردن بعدی

توصیه Gentoo

در نصب تازه Gentoo، یک پارتیشن swap اختصاصی بسازید. اگر بعداً نیاز به swap بیشتری داشتید، می‌توانید یک فایل swap هم اضافه کنید.

اندازه مناسب swap#

اندازه swap به مقدار RAM و کاربرد سیستم بستگی دارد:

مقدار RAMswap توصیه‌شده (دسکتاپ)swap توصیه‌شده (سرور)
کمتر از ۲GB۲ برابر RAM۲ برابر RAM
۲ تا ۸GBبرابر با RAM۱.۵ برابر RAM
۸ تا ۳۲GBنصف RAMبرابر با RAM
۳۲ تا ۶۴GB۸GBنصف RAM
بیشتر از ۶۴GB۸GB۴ تا ۸GB

اگر می‌خواهید از hibernation استفاده کنید، swap باید حداقل برابر با RAM باشد.

ساخت پارتیشن swap#

# ساخت پارتیشن swap با fdisk
fdisk /dev/sda
# در محیط fdisk:
# n → p → 2 → Enter → +8G     → ساخت پارتیشن
# t → 2 → 82                  → تغییر نوع به swap
# w                            → ذخیره و خروج
 
# ساخت فایل swap روی پارتیشن
mkswap /dev/sda2
# خروجی:
# Setting up swapspace version 1, size = 8 GiB (8589934592 bytes)
# no label, UUID=a1b2c3d4-...
 
# فعال‌کردن swap
swapon /dev/sda2
 
# بررسی
swapon --show
# خروجی:
# NAME      TYPE      SIZE USED PRIO
# /dev/sda2 partition   8G   0B   -2

ساخت فایل swap#

اگر پارتیشن swap ندارید، می‌توانید فایل swap بسازید:

# ساخت فایل ۴ گیگابایتی
fallocate -l 4G /swapfile
 
# یا با dd (کندتر اما قابل‌اعتمادتر روی برخی فایل سیستم‌ها)
dd if=/dev/zero of=/swapfile bs=1M count=4096 status=progress
 
# تنظیم مجوزها (مهم!)
chmod 600 /swapfile
 
# ساخت swap روی فایل
mkswap /swapfile
 
# فعال‌کردن
swapon /swapfile
 
# تأیید
swapon --show

فایل swap روی Btrfs

روی فایل سیستم Btrfs، fallocate و dd به‌طور مستقیم کار نمی‌کنند. باید از دستور btrfs filesystem mkswapfile استفاده کنید.

افزودن به fstab#

برای فعال‌شدن خودکار swap در هر بوت، آن را به فایل /etc/fstab اضافه کنید:

# /etc/fstab — پارتیشن swap
/dev/sda2   none   swap   sw   0   0
 
# یا با UUID (توصیه می‌شود)
UUID=a1b2c3d4-...   none   swap   sw   0   0
 
# یا فایل swap
/swapfile   none   swap   sw   0   0

برای دریافت UUID:

blkid /dev/sda2
# خروجی:
# /dev/sda2: UUID="a1b2c3d4-5e6f-..." TYPE="swap" PARTLABEL="swap"

تنظیم swappiness#

پارامتر vm.swappiness در هسته کنترل می‌کند که سیستم چه میزان از swap استفاده کند. بازهٔ مقدار این پارامتر ۰ تا ۱۰۰ است:

  • 0 — فقط در صورت اضطرار از swap استفاده کن
  • 60 — پیش‌فرض لینوکس (متعادل)
  • 100 — استفاده تهاجمی از swap
# مشاهده مقدار فعلی
cat /proc/sys/vm/swappiness
# خروجی رایج:
# 60
 
# تنظیم موقت به ۱۰
sysctl vm.swappiness=10
 
# تنظیم دائمی
echo "vm.swappiness=10" >> /etc/sysctl.d/99-swappiness.conf
sysctl --load=/etc/sysctl.d/99-swappiness.conf

swappiness مناسب برای دسکتاپ

برای دسکتاپ با RAM کافی مقدار 10 توصیه می‌شود؛ به این ترتیب از کندی ناشی از swap بی‌مورد جلوگیری می‌کند. برای سرور، مقدار پیش‌فرض 60 معمولاً مناسب است.

اولویت swap#

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

# /etc/fstab
/dev/sda2   none   swap   sw,pri=10   0   0
/swapfile   none   swap   sw,pri=5    0   0

خطاهای رایج#

۱. خطای swapon failed: Device or resource busy#

swapon: /dev/sda2: swapon failed: Device or resource busy

دلیل: swap از قبل فعال شده است. راه‌حل:

# ابتدا غیرفعال کنید
swapoff /dev/sda2
 
# سپس دوباره فعال کنید
swapon /dev/sda2

۲. عدم فعال‌شدن swap بعد از ریبوت#

دلیل: ورودی swap در /etc/fstab وجود ندارد یا UUID اشتباه است. راه‌حل:

# دریافت UUID صحیح
blkid /dev/sda2
 
# اصلاح fstab
nano /etc/fstab

۳. کندی سیستم به‌دلیل swap تهاجمی#

اگر سیستم کند شده و هارد/SSD مدام درگیر است، swappiness را کاهش دهید:

sysctl vm.swappiness=10

خلاصه و مرحله بعد#

Swap برای پایداری سیستم، پشتیبانی از hibernation و مدیریت اوج مصرف RAM ضروری است. انتخاب پارتیشن یا فایل swap به نیاز شما بستگی دارد، اما در نصب تازه Gentoo، پارتیشن swap توصیه می‌شود.

برای تنظیم کامل سیستم پارتیشن‌بندی، آموزش UEFI را ببینید. برای بهینه‌سازی عملکرد سیستم، به آموزش Performance (به‌زودی) مراجعه کنید.

اشتراک‌گذاری:

این صفحه در تاریخ ۱ تیر ۱۴۰۵ به‌روزرسانی شده است.