الخوادم الصغيرة تنفد ذاكرتها في أسوأ اللحظات: apt upgrade، أو بناء Docker، أو نسخ احتياطي ليلي. بدون swap يختار OOM killer في النواة عملية وينهيها، وغالبًا تكون قاعدة بياناتك. ملف swap حزام أمان رخيص يمنح تلك الذروات مكانًا تذهب إليه. يستغرق خمسة أوامر.
1. تحقق مما لديك
swapon --show
free -h
إن لم يُخرج swapon --show شيئًا، فلا يوجد swap بعد.
2. أنشئ ملف الـ swap
fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
chmod 600 مهم: قد يحتوي الـ swap على أجزاء من أي شيء في الذاكرة، بما فيها الأسرار، لذا لا يجوز أن يقرأه إلا root. إن فشل fallocate برسالة «operation not supported»، فاستخدم dd بدلًا منه:
dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress
3. اجعله دائمًا
بدون هذه الخطوة يختفي الـ swap بعد إعادة التشغيل:
echo '/swapfile none swap sw 0 0' >> /etc/fstab
4. اضبط swappiness
اطلب من النواة تفضيل RAM واستخدام الـ swap أساسًا تحت الضغط:
echo 'vm.swappiness=10' > /etc/sysctl.d/99-swap.conf
sysctl --system
5. تحقق
swapon --show
free -h
يجب أن ترى جهاز swap بحجم 2 GB، ويجب أن يطبع cat /proc/sys/vm/swappiness القيمة 10.
كم يجب أن يكون حجمه؟
- خادم بذاكرة 1–2 GB: 1–2 GB swap.
- 4 GB فأكثر: 1–2 GB تظل كافية كشبكة أمان.
لا تجعل حجم الـ swap «ضعف RAM». على الخادم، يوجد الـ swap لامتصاص الذروات القصيرة، لا لتشغيل أعمال لا تتسع للذاكرة.
حين لا يكون الـ swap هو الحل
راقبه بضعة أيام:
vmstat 5
العمودان si وso يعرضان الصفحات المقروءة من الـ swap والمكتوبة إليه في الثانية. النشاط العرضي طبيعي. أما القيم غير الصفرية الدائمة فتعني أن الخادم يعاني نقصًا في الذاكرة وأن كل شيء ينتظر القرص. عندها يكون الحل مزيدًا من RAM: راجع كم RAM يحتاج VPS. على EQVPS يمكنك الانتقال إلى خطة أكبر دون إعادة التثبيت؛ وتبقى بياناتك في مكانها.
التعليقات
لا تعليقات بعد. كن الأول.