إنشاء وضبط مساحة Swap: دليل شامل
ما هو swap في Linux، كيفية إنشاء ملف swap، ضبط swappiness، مراقبة استخدام swap وتحسين أداء الذاكرة على خادمك.
جدول المحتويات
إنشاء وضبط مساحة Swap: دليل شامل
مساحة Swap هي ذاكرة افتراضية على القرص يستخدمها نظام التشغيل عندما تمتلئ الذاكرة العشوائية (RAM). تمنع تعطل النظام تحت ضغط الذاكرة وتبقي التطبيقات تعمل. يغطي هذا الدليل إنشاء ملف swap وضبطه ومراقبته.
لا يحل Swap محل RAM؛ بل يعمل فقط كمخزن مؤقت للطوارئ. الاستخدام المرتفع المستمر لـ swap علامة على نقص RAM.
ما هو Swap ومتى يكون ضرورياً؟
يمكن إنشاء مساحة swap بطريقتين:
| الطريقة | الميزة | العيب |
|---|---|---|
| قسم swap | أسرع قليلاً | حجم ثابت |
| ملف swap | مرن، قابل لتغيير الحجم | أبطأ قليلاً |
تُفضَّل ملفات swap على الأنظمة الحديثة لأن حجمها يمكن تغييره ديناميكياً.
متى يكون swap ضرورياً؟
- RAM بحجم 2 جيجابايت أو أقل
- تشغيل تطبيقات كثيفة الذاكرة
- استخدام وضع الإسبات (Hibernate)
- كمخزن مؤقت للأمان ضد ارتفاعات الذاكرة غير المتوقعة
التحقق من حالة Swap الحالية
# عرض استخدام swap
swapon --show
# ملخص الذاكرة وswap
free -h
# معلومات تفصيلية عن الذاكرة
cat /proc/meminfo | grep -i swap
# سرد مناطق swap
cat /proc/swaps
إنشاء ملف Swap
الخطوة 1: إنشاء ملف Swap
# إنشاء ملف swap بحجم 2 جيجابايت (طريقة dd)
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
# أو باستخدام fallocate (أسرع)
sudo fallocate -l 2G /swapfile
# التحقق من حجم الملف
ls -lh /swapfile
الخطوة 2: ضبط صلاحيات الأمان
# فقط root يمكنه القراءة/الكتابة
sudo chmod 600 /swapfile
# التحقق من الصلاحيات
ls -la /swapfile
# المخرجات: -rw------- 1 root root 2.0G ...
الخطوة 3: التهيئة كـ Swap
# تعليم الملف كمساحة swap
sudo mkswap /swapfile
الخطوة 4: تفعيل Swap
# تفعيل swap
sudo swapon /swapfile
# التحقق
swapon --show
free -h
الخطوة 5: جعله دائماً
أضف إلى /etc/fstab لتفعيل swap تلقائياً عند إعادة التشغيل:
# إضافة إلى /etc/fstab
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
# التحقق
cat /etc/fstab | grep swap
تغيير حجم Swap
لزيادة حجم ملف swap الموجود:
# تعطيل swap
sudo swapoff /swapfile
# إنشاء ملف جديد بحجم أكبر (4 جيجابايت)
sudo fallocate -l 4G /swapfile
# إعادة التهيئة
sudo mkswap /swapfile
# إعادة التفعيل
sudo swapon /swapfile
# التحقق
free -h
ضبط Swappiness
Swappiness قيمة بين 0-100 تحدد مدى عدوانية النواة في استخدام swap:
| القيمة | السلوك |
|---|---|
| 0 | استخدام swap بأقل قدر ممكن |
| 10 | موصى به للخوادم |
| 60 | الافتراضي في Linux |
| 100 | استخدام swap بشكل عدواني |
# عرض قيمة swappiness الحالية
cat /proc/sys/vm/swappiness
# تغيير مؤقت (يُعاد تعيينه عند إعادة التشغيل)
sudo sysctl vm.swappiness=10
# تغيير دائم
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
# تطبيق التغييرات
sudo sysctl -p
يُنصح بـ swappiness=10 للخوادم. يقلل هذا من استخدام swap قبل نفاد RAM ويخفض I/O القرص.
مراقبة استخدام Swap
# حالة الذاكرة وswap الآنية
free -h
# مراقبة مستمرة (كل ثانيتين)
watch -n 2 free -h
# أي العمليات تستخدم swap؟
for file in /proc/*/status; do
awk '/VmSwap|Name/{printf $2 " " $3 "\n"}' $file
done | sort -k 2 -n -r | head -10
# المراقبة بـ vmstat
vmstat 2 5
تعطيل Swap
# تعطيل مؤقت
sudo swapoff /swapfile
# إزالة دائمة
sudo swapoff /swapfile
sudo rm /swapfile
# أزل أيضاً سطر swap من /etc/fstab
قبل تعطيل swap، تأكد من وجود RAM حر كافٍ. وإلا قد يواجه النظام خطأ OOM (نفاد الذاكرة).
الخلاصة
مساحة Swap مهمة لاستقرار النظام، خاصةً على الخوادم ذات RAM المحدود. إنشاء ملف swap وتحسين قيمة swappiness ومراقبة استخدام swap بانتظام يحسّن إدارة الذاكرة في خادمك. لكن swap ليس حلاً دائماً لنقص RAM — إذا رأيت استخداماً مرتفعاً مستمراً لـ swap، فكّر في ترقية RAM.
مقالات ذات صلة
الاتصال بخادم VDS عبر SSH: PuTTY والطرفية والمفاتيح
دليل شامل للاتصال بخادم Linux VDS عبر SSH: PuTTY، الطرفية، المصادقة بالمفتاح، إنشاء قاعدة تصفية Path Panel، تغيير المنفذ ونصائح الأمان الأساسية.
الاتصال بـ Windows VDS عبر RDP: دليل شامل للمبتدئين
دليل خطوة بخطوة للاتصال بـ Windows Server VDS عبر RDP: الإعداد الكامل، تفعيل NLA للأمان، إنشاء قاعدة تصفية Path Panel واستكشاف الأخطاء وإصلاحها.
تغيير نظام تشغيل خادم VDS: دليل إعادة التثبيت خطوة بخطوة
تغيير نظام تشغيل خادم VDS عبر لوحة REXE: نصائح النسخ الاحتياطي قبل التثبيت، توزيعات Linux المدعومة وإصدارات Windows Server المتاحة للتثبيت الآن.