بشكل افتراضي يأتي Ubuntu Server 24.04 دون ملف مبادلة (swap) على معظم صور السحابة. بالنسبة لأحمال العمل التي تشهد ارتفاعًا عرضيًا، فإن ملف مبادلة صغير هو أرخص تأمين ضد قاتل الذاكرة OOM-killer.
المتطلبات المسبقة
- Ubuntu Server 22.04 أو 24.04 مع صلاحيات
sudo. - على الأقل 2 جيجابايت من المساحة الحرة على نظام الملفات الجذري.
- فكرة عن الحجم الفعلي الذي تحتاجه — للاستخدام العام:
swap = min(RAM, 4G).
الخطوة 1: فحص المبادلة الحالية
free -h
swapon --show
إذا لم يُرجع swapon --show أي شيء فهذا يعني أنه لا يوجد لديك swap. تابع.
الخطوة 2: إنشاء ملف المبادلة
سنخصص 2 جيجابايت. استخدم fallocate للسرعة، وارجع إلى dd إذا لم يدعم نظام الملفات ذلك.
sudo fallocate -l 2G /swapfile
# في حال فشل fallocate:
# sudo dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
تأكد:
swapon --show
free -h
الخطوة 3: جعل التغيير دائمًا بعد إعادة التشغيل
أمر swapon يعمل في الذاكرة فقط. أضف سطرًا إلى /etc/fstab:
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
تحقق من صحة السطر:
sudo swapoff /swapfile
sudo swapon -a
swapon --show
الخطوة 4: ضبط swappiness
تحكم vm.swappiness في مدى عدوانية النواة في استخدام المبادلة. القيمة الافتراضية 60 مفرطة للخوادم؛ القيمة 10 معقولة للإنتاج.
sudo sysctl vm.swappiness=10
echo 'vm.swappiness=10' | sudo tee /etc/sysctl.d/99-skyline-swap.conf
التحقق
cat /proc/swaps
sysctl vm.swappiness
يجب أن يُدرج /proc/swaps ملف /swapfile، ويُرجع vm.swappiness القيمة 10.
الخاتمة
ملف مبادلة بحجم مناسب مع swappiness منخفض لا يكلف شيئًا، ويمنع قاتل الذاكرة OOM-killer من إنهاء تطبيقك خلال طفرة ذاكرة قصيرة. راقب swapon --show خلال الأسبوع الأول — الاستخدام المزمن للمبادلة دليل على أنك بحاجة إلى مزيد من الذاكرة.
الخطوات التالية
- قم بتأمين الخادم بدليل تقوية SSH وجدار UFW.
- اقرن ذلك مع التحديثات الأمنية التلقائية.
- راجع دليل خدمات systemd لتعيين حدود الذاكرة لكل خدمة.
Comments
0 total · 0 threads