الشرح المبسط
الشرح التقني المتقدم
يعتبر قاتل نفاذ الذاكرة (OOM Killer) آلية حماية حيوية مدمجة داخل نواة لينكس (Linux Kernel) تعمل في الخلفية لمراقبة استهلاك الموارد وحماية النظام (System) من الانهيار الشامل عند استنفاد المساحة المتاحة.
كيف يختار النظام العملية الضحية؟
يعتمد النظام على خوارزمية دقيقة لتقييم كل عملية وتحديد نقاط الذاكرة (OOM Score) الخاصة بها لاختيار الضحية المناسبة:
ملف التقييم (oom_score): يقوم النظام بتسجيل هذه النقاط في مسار (Path) مخصص لكل عملية داخل المجلد الوهمي /proc، حيث تمثل الدرجة الأعلى أولوية كبرى للإنهاء.
التحقق من حالة العملية المقتولة (مع استخدام dmesg)
عند حدوث نفاذ في الذاكرة العشوائية (RAM) وتدخل النظام، يمكنك مراجعة سجلات النواة لمعرفة العملية التي تم استهدافها وإنهاؤها:
أمر التنفيذ:
dmesg | grep -i "killed process"
توضيح لما يحدث في الخلفية والخيارات التقنية المتاحة:
- النقطة الأولى: يتم فحص مخرجات أمر
dmesgلرؤية اسم العملية (Process) ورقم التعريف الخاص بها، بالإضافة لحجم الذاكرة التي كانت تستهلكها قبل القتل. - النقطة الثانية: يمكن لمديري النظام (System Administrators) حماية الخدمات الحرجة مثل قواعد البيانات عن طريق تعديل ملف
oom_score_adjلتقليل احتمالية استهدافها.
ملاحظة ختامية: الصورة الكبرى (نصيحة احترافية)
لا تعتمد على هذه الآلية كحل يومي أو دائم لمشاكل استهلاك الذاكرة في خادمك (Server). الممارسة الأفضل هي ضبط استهلاك الموارد لتطبيقاتك وإضافة مساحة تبديل (Swap Space) كافية لتجنب تفعيلها من الأساس.