مراقبة موارد النظام
مراقبة موارد النظام
على نطاق الشركات الكبرى، الخادم الذي يصمت هو خادم يتعطل. يقضي مهندسو الإنتاج جزءًا كبيرًا من يومهم في قراءة مقاييس الموارد — استخدام المعالج، وضغط الذاكرة، ومعدل نقل إدخال/إخراج القرص وزمن الاستجابة — وربط هذه الأرقام بالإشارات الأربع الجوهرية: الاستخدام والتشبع والأخطاء والطلبات (منهجية USE التي صاغها Brendan Gregg). إتقان سلسلة أدوات المراقبة القياسية في Linux هو الشرط الأساسي لكل شيء آخر في هذه الوحدة التعليمية: لا يمكنك تأمين أو ضبط أو أتمتة نظام لا ترى ما يجري فيه.
منهجية USE
قبل اللجوء إلى أي أداة، استوعب هذا الإطار. لكل مورد في النظام، اطرح ثلاثة أسئلة:
- الاستخدام (Utilisation) — ما النسبة المئوية من طاقة المورد التي يُستخدم؟ (مثل: المعالج عند 80%)
- التشبع (Saturation) — هل تتراكم المهام في قائمة الانتظار لأن المورد ممتلئ؟ (مثل: طول قائمة التشغيل أكبر من صفر، أو استخدام مساحة التبديل)
- الأخطاء (Errors) — هل تفشل الطلبات الموجهة إلى المورد؟ (مثل: أخطاء I/O على القرص، أو إسقاط حزم على واجهة الشبكة)
طبّق منهجية USE على كل نظام فرعي: المعالجات، والذاكرة، وواجهات الشبكة، والأقراص، وحتى أقفال النواة. مورد مشبع واحد دون أخطاء يشير دائمًا إلى مشكلة في السعة؛ أما الأخطاء مع استخدام منخفض فتشير إلى عطل في الأجهزة أو السائق.
المعالج: top و htop
top متوفر على كل نظام Linux ويعرض جدولًا حيًا مرتبًا للعمليات. الصفوف العلوية هي الأهم:
الحقول التي يجب التركيز عليها: us (عمل فضاء المستخدم)، sy (عمل النواة)، wa (انتظار القرص — المعالج خامل ينتظر القرص)، si (المقاطعات البرمجية — شائع على المضيفين الشبكيين)، وst (الوقت المسروق من المشرف الافتراضي؛ قيمة غير صفرية على آلة افتراضية في بيئة مزدحمة).
htop يضيف الألوان ودعم الماوس والتمرير الأفقي وعرض شجرة العمليات (F5). ثبّته بـdnf install htop أو apt install htop. في الإنتاج، htop -d 5 (تحديث كل 0.5 ثانية) مفيد أثناء الحوادث؛ للفحوصات المبرمجة، استخدم top -b -n 1.
%iowait المرتفع لا يعني بالضرورة أن القرص هو عنق الزجاجة — فهو يعني أن المعالجات خاملة بينما عملية واحدة على الأقل تنتظر I/O. تحقق بالتقاطع مع iostat لمعرفة ما إذا كان القرص مشبعًا فعلًا.
المعالج: vmstat — اللقطة التي تروي القصة كاملة
vmstat (إحصائيات الذاكرة الافتراضية) يُبلّغ عن المعالج والذاكرة والتبديل والإدخال/الإخراج والجدولة في سطر واحد مضغوط. شغّله بفاصل زمني لمتابعة الاتجاهات:
قائمة التشغيل (r) هي إشارة التشبع للمعالج. إذا تجاوزت باستمرار ضعف عدد المعالجات المنطقية، فأنت أمام تشبع في المعالج — العمليات تنتظر دورها.
الذاكرة: free
free -h يطبع استخدام الذاكرة ومساحة التبديل بصيغة مقروءة. نوى Linux الحديثة تستخدم الذاكرة الخاملة بقوة كذاكرة تخزين مؤقت للصفحات، لذا قد يبدو عمود "الاستخدام" مرتفعًا بشكل مقلق على خادم سليم:
free وحده. خادم Linux به 200 ميغابايت "free" و10 غيغابايت "available" في وضع صحي تمامًا — النواة تستخدم الذاكرة كذاكرة تخزين مؤقت للقرص، وستعيدها فورًا عند حاجة التطبيق. انبّه فقط عندما ينخفض available دون عتبة آمنة (عادةً 10-15% من إجمالي الذاكرة) أو عند استخدام مساحة التبديل.
إدخال/إخراج القرص: iostat
iostat (جزء من حزمة sysstat) هو الأداة الرئيسية لتحليل الأجهزة الكتلية. يتوافق مباشرة مع USE: الاستخدام (%util)، التشبع (aqu-sz، متوسط عمق قائمة الانتظار)، والأخطاء (من dmesg أو smartctl):
قيمة %util قرب 100% على قرص دوّار تعني أن القرص يمثل عنق زجاجة. على أقراص NVMe الحديثة، قد يرتفع التشبع دون أن يبلغ %util 100% بسبب التوازي الداخلي — اعتمد على aqu-sz وawait بدلًا من ذلك. أي زمن استجابة يتجاوز 20 مللي ثانية للقرص الدوّار أو 1 مللي ثانية لـ NVMe تحت الحمل الطبيعي يستحق التحقيق.
الجمع بين الأدوات: نمط التحقيق في الحوادث
قائمة التحقق السريعة للأوامر أثناء المناوبة
يُنفَّذ التسلسل التالي في أقل من 60 ثانية ويغطي كل مورد رئيسي. احفظه كمقتطف في كتيب التشغيل:
perf وbpftrace وsar تأتي بعد تحديد عنق الزجاجة.
الاحتفاظ بالمقاييس التاريخية مع sar
sar (مُبلِّغ نشاط النظام، من حزمة sysstat) هو iostat وvmstat مدمجَين مع التسجيل التاريخي. على معظم التوزيعات، يُفعّل sysstat تلقائيًا كتابة عيّنة كل 10 دقائق إلى /var/log/sa/. هذا لا يقدّر بثمن للتحليل بعد الحوادث ("ما كان معدل I/O في 03:47 الخميس الماضي؟"):
في الشركات التي تُشغّل آلاف الخوادم، يُجمع بيانات sar في مخازن سلاسل زمنية مركزية (Prometheus + node_exporter، أو Datadog، أو CloudWatch) وتحل لوحات القيادة محل العمل اليدوي بسطر الأوامر خلال العمليات العادية. لكن أدوات CLI تبقى ضرورية أثناء الحوادث التي تعتمد SSH فقط، وعند تهيئة مضيفين جدد، وتشخيص المشكلات التي تسبق منظومة المراقبة.