كيفية إعداد ملف Swap على VPS (منع انهيار نفاد الذاكرة)

القراءة المقدرة:1دقيقة

Summary: يتيح ملف swap لخادم VPS استخدام مساحة القرص كذاكرة RAM إضافية. في الخطط ذات ذاكرة RAM بحجم 512MB–1GB، يمنع إضافة swap انهيار MySQL وPHP وغيرها من الخدمات

يتيح ملف swap لخادم VPS استخدام مساحة القرص كذاكرة RAM إضافية. في الخطط ذات ذاكرة RAM بحجم 512MB–1GB، يمنع إضافة swap انهيار MySQL وPHP وغيرها من الخدمات عند ضيق الذاكرة.

الخطوة 1: تحقق مما إذا كان swap موجودًا بالفعل

swapon --show
free -h

إذا كان صف swap يظهر 0B أو لا يظهر شيئًا، فلا يوجد swap مضبوط. واصل أدناه.

الخطوة 2: أنشئ ملف swap

أنشئ ملف swap بحجم 2GB (موصى به لخطط VPS ذات RAM بحجم 1GB):

sudo fallocate -l 2G /swapfile

إذا فشل fallocate، فاستخدم dd بدلًا منه:

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

الخطوة 3: أمِّن ملف swap وفعّله

# Set correct permissions (only root can read it)
sudo chmod 600 /swapfile

# Format it as swap
sudo mkswap /swapfile

# Enable the swap file
sudo swapon /swapfile

تحقق من أنه نشط:

free -h

يجب أن ترى الآن مساحة swap مدرجة.

الخطوة 4: اجعل swap دائمًا (يبقى بعد إعادة التشغيل)

أضف ملف swap إلى /etc/fstab ليبقى بعد إعادة التشغيل:

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

الخطوة 5: ضبط swappiness (اختياري)

يتحكم swappiness في مدى عدوانية استخدام النظام لـ swap (من 0 إلى 100). القيمة الافتراضية 60. وللخادم يُنصح بـ 10 ليفضّل النظام استخدام RAM ولا يلجأ إلى swap إلا عند الضرورة:

# Check current value
cat /proc/sys/vm/swappiness

# Set to 10 for this session
sudo sysctl vm.swappiness=10

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

ملاحظة حول swap في VPS

يستخدم swap على خادم VPS القرص الخاص بك (عادةً SSD)، وهو أبطأ من RAM. إنه شبكة أمان وليس بديلًا عن RAM. إذا وجدت نفسك تعتمد على swap بشكل دائم، ففكّر في ترقية خطة VPS لأداء أفضل.

Launchpad