Home Knowledge base Skyline Cloud كيفية إضافة مساحة تبديل (Swap) على خادم لينكس KNOWLEDGE BASE

كيفية إضافة مساحة تبديل (Swap) على خادم لينكس

دليل صحيح خطوة بخطوة لإنشاء ملف تبديل على أوبونتو 22.04/24.04 وجعله دائماً وضبط قيمة swappiness — مثالي لخوادم VPS والخوادم السحابية ذات الذاكرة المحدودة.

ما هي مساحة التبديل (Swap) ومتى تحتاج إليها؟

مساحة التبديل هي منطقة على القرص يستخدمها لينكس كفائض عن الذاكرة العشوائية (RAM). فعندما تمتلئ الذاكرة الفيزيائية، تنقل النواة (kernel) صفحات الذاكرة غير النشطة إلى مساحة التبديل، مما يحرر ذاكرة عشوائية للعمليات النشطة. لا تجعل مساحة التبديل خادمك أسرع — فالقرص أبطأ بكثير من الذاكرة العشوائية — لكنها تعمل كشبكة أمان تمنع أداة قتل العمليات عند نفاد الذاكرة (OOM killer) من إنهاء العمليات فجأة عند نقص الذاكرة.

تكون مساحة التبديل ذات قيمة خاصة على خوادم VPS والخوادم السحابية الصغيرة التي تحتوي على 1–4 جيجابايت من الذاكرة، حيث يمكن لارتفاع مفاجئ في حركة الزوار، أو استعلام قاعدة بيانات، أو عملية بناء بـ composer/npm أن تستنفد الذاكرة. كما أن العديد من لوحات التحكم وحزم التطبيقات تتوقع وجود قدر من مساحة التبديل.

يستهدف هذا الدليل أوبونتو 22.04 و24.04 LTS، لكن الخطوات تعمل عملياً على أي توزيعة لينكس حديثة (دبيان، روكي، ألما لينكس) لأن الأدوات متطابقة. إذا كنت بصدد تجهيز خادم جديد، يمكنك تطبيق هذه الخطوات نفسها على خادم VPS من Skyline Cloud.

الخطوة 1 — التحقق من وجود مساحة تبديل مسبقاً

قبل إنشاء مساحة تبديل، تأكد من عدم وجود واحدة بالفعل. فتشغيل ملفي تبديل يُعد إهداراً وقد يسبب التباساً.

sudo swapon --show

إذا لم يُرجع الأمر أي شيء، فهذا يعني عدم وجود مساحة تبديل نشطة. يمكنك أيضاً رؤية إجمالي الذاكرة ومساحة التبديل بنظرة سريعة:

free -h

في صف Swap، يؤكد ظهور القيمة 0B عدم وجود مساحة تبديل بعد.

الخطوة 2 — اختيار حجم مساحة التبديل

لا يوجد حجم صحيح وحيد، لكن هذه الإرشادات نقطة بداية منطقية للخوادم:

الذاكرة العشوائية مساحة التبديل المقترحة
1 جيجابايت 2 جيجابايت
2 جيجابايت 2–4 جيجابايت
4 جيجابايت 4 جيجابايت
8 جيجابايت أو أكثر 2–4 جيجابايت (أو لا شيء إن كانت الذاكرة وفيرة)

يجب ألا تكون مساحة التبديل بديلاً عن ذاكرة عشوائية كافية. فإذا كان خادمك يعتمد على مساحة التبديل باستمرار، فالحل الصحيح هو إضافة ذاكرة — وهو أمر سهل عبر ترقية حجم الخطة السحابية بدلاً من شراء عتاد جديد.

الخطوة 3 — إنشاء ملف التبديل

تحقق أولاً من توفر مساحة قرص كافية:

df -h /

أنشئ ملف تبديل بحجم 2 جيجابايت. يقوم الأمر fallocate بتخصيص المساحة فوراً:

sudo fallocate -l 2G /swapfile

تحقق من حجم الملف:

ls -lh /swapfile

إذا كان fallocate غير متاح أو لم يدعمه نظام الملفات لديك بشكل سليم (بعض الإعدادات تتطلب ملفاً مكتوباً بالكامل)، استخدم dd بدلاً منه. هذا الأمر أبطأ لكنه يعمل دائماً:

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

الخطوة 4 — تأمين الملف وتهيئته

يجب أن يكون ملف التبديل قابلاً للقراءة والكتابة من قِبل المستخدم الجذر (root) فقط، وإلا فإنك تكشف محتوياته. اضبط الصلاحيات على 600:

sudo chmod 600 /swapfile

الآن حدّد الملف كمنطقة تبديل في لينكس:

sudo mkswap /swapfile

سترى مخرجات تؤكد تسمية مساحة التبديل ومعرّفاً فريداً (UUID).

الخطوة 5 — تفعيل مساحة التبديل

فعّل ملف التبديل فوراً:

sudo swapon /swapfile

تأكد من أنه يعمل:

sudo swapon --show
free -h

يجب أن يُظهر صف Swap في free -h الآن مساحة الـ 2 جيجابايت. مساحة التبديل نشطة الآن — لكن حتى إعادة التشغيل التالية فقط.

الخطوة 6 — جعل مساحة التبديل دائمة

للحفاظ على ملف التبديل بعد إعادة التشغيل، أضفه إلى /etc/fstab. انسخ الملف احتياطياً أولاً:

sudo cp /etc/fstab /etc/fstab.bak

أضف سطر التبديل بأمان باستخدام tee:

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

تعني الحقول: مسار الملف، ونقطة التركيب (none لمساحة التبديل)، ونوع نظام الملفات (swap)، والخيارات (sw)، والتفريغ dump (0)، وترتيب فحص fsck (0). تحقق من إضافة السطر بشكل صحيح:

grep swapfile /etc/fstab

قد يؤدي خطأ مطبعي هنا إلى منع النظام من الإقلاع بشكل سليم، لذا تحقق مرتين من الكتابة ومن أنك استخدمت >>/tee -a (الإضافة) بدلاً من الكتابة فوق الملف.

الخطوة 7 — ضبط قيمة swappiness

تتحكم قيمة swappiness في مدى حرص النواة على نقل البيانات إلى مساحة التبديل، على مقياس من 0 إلى 100. القيمة الافتراضية في أوبونتو هي 60، وهي مناسبة لأجهزة سطح المكتب لكنها متحمسة أكثر من اللازم للخوادم — إذ قد تدفع البيانات إلى القرص البطيء بينما لا تزال الذاكرة العشوائية متاحة.

تحقق من القيمة الحالية:

cat /proc/sys/vm/swappiness

بالنسبة لخادم نموذجي، تُعد القيمة 10 قيمة جيدة: استخدم مساحة التبديل فقط عندما تكون الذاكرة العشوائية تحت ضغط حقيقي. طبّقها الآن:

sudo sysctl vm.swappiness=10

اجعلها دائمة عبر عمليات إعادة التشغيل:

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

يمكنك اختيارياً خفض قيمة vfs_cache_pressure للإبقاء على بيانات نظام الملفات الوصفية (metadata) مخزّنة مؤقتاً لفترة أطول:

echo 'vm.vfs_cache_pressure=50' | sudo tee -a /etc/sysctl.d/99-swappiness.conf

الخطوة 8 — التحقق بعد إعادة التشغيل (اختياري)

للتأكد من أن الإعدادات تصمد بعد إعادة التشغيل، أعد تشغيل النظام وتحقق مجدداً:

sudo reboot

بعد تسجيل الدخول مرة أخرى:

sudo swapon --show
cat /proc/sys/vm/swappiness

يجب أن يعكس كلاهما إعداداتك.

إزالة مساحة التبديل أو تغيير حجمها

لإزالة مساحة التبديل، عطّلها، واحذف السطر من /etc/fstab، ثم احذف الملف:

sudo swapoff /swapfile
sudo sed -i '/\/swapfile/d' /etc/fstab
sudo rm /swapfile

لتغيير الحجم، ببساطة احذف الملف القديم وأنشئ ملفاً جديداً بالحجم المطلوب باستخدام الخطوات أعلاه.

ملاحظة حول أقراص SSD والأقراص السحابية

تتعامل وحدات التخزين الحديثة من نوع NVMe وSSD مع عمليات الكتابة إلى مساحة التبديل بكفاءة، والقدر الضئيل من التآكل الناتج عن ملف تبديل مضبوط بحكمة يكاد لا يُذكر. على الخادم السحابي، تمنحك مساحة التبديل أيضاً متسعاً من الوقت بينما تقرر ما إذا كنت ستزيد الذاكرة العشوائية. والحل الأنظف على المدى الطويل لأي حمل عمل مقيد بالذاكرة هو زيادة الذاكرة العشوائية، لا زيادة مساحة التبديل.

شغّلها على خادم سحابي مُدار

مساحة التبديل مكسب سريع، لكن الخادم الصحي يحتاج أيضاً إلى تخزين موثوق، ونسخ لحظية (snapshots)، ومتسع لزيادة الذاكرة العشوائية عند الطلب. تعمل Skyline Cloud داخل المملكة مع إقامة بيانات متوافقة مع PDPL وNCA، ودعم محلي بالعربية، وتسعير شفاف — لتبقى بياناتك وأحمال عملك داخل المملكة العربية السعودية. اقرن خادمك الافتراضي بـ استضافة البريد الإلكتروني للأعمال والنسخ الاحتياطي المُدار لتغطية المنظومة بالكامل.

استكشف الخطط عبر مركز خوادم VPS والخوادم السحابية، ثم أنشئ حسابك في Skyline Cloud واحصل على خادم مضبوط وجاهز للإنتاج يعمل خلال دقائق.

SKYLINE Engineering

@skyline

The engineering team at SKYLINE Industrial Solutions. We publish field-tested guides drawn from real KSA and GCC deployments.

See author profile
SKYLINE engineering services

Need this implemented for you?

Reading is free — building it right takes a team. SKYLINE engineers ship Skyline Cloud for Aramco vendors, banks, hospitals and government agencies across Saudi Arabia. Talk to us before you start.

Aramco Approved Contractor ISO 9001 · ISO 27001 SAMA CSF aligned NCA ECC ready 247+ KSA clients

Comments

0 total · 0 threads
Be the first to leave a comment.