من الأمور الأساسية التي يمر بها أي شخص يعمل في مجال إدارة الأنظمة والتطبيقات بشكل خاص وأي مستخدم للحاسوب بشكل عام هو مراقبة أداء النظام الذي يعمل عليه حاليًا. عن طريق مراقبة الأداء تستطيع إيجاد الأخطاء وابتكار وإيجاد حلول لتسريع النظام أو التطبيق الخاص بك. في هذه السلسلة سنتناول في كل تدوينة أداة من الأدوات التي تساعد على مراقبة أداء أنظمة لينكس. سأحاول بقدر الإمكان التطرق إلى أكبر قدر ممكن من الأدوات في جميع نواحي النظام (مراقبة الرام – المعالج – القراءة والكتابة من وإلى أجهزة التخزين – وغيرها) إن شاء الله.
حديثنا اليوم سيكون أحدى الأدوات الشهيرة جدًا بين مستخدمي لينكس وهي أداة Top. تتميز هذه الأداة بأنها تعطيك إحصائيات دقيقة ومباشرة من جوانب كثيرة من النظام تشمل المعالج والرام والأوامر أو الأدوات التي تستهلك أبسط الموارد من جهازك أو سيرفرك. مع أن الأداة قوية جدًا إلا أني شخصيًا وكثير من مدراء الأنظمة لا نهتم بحذافيرها وإنما نأخذ أشياء عامة فقط منها ونتجاهل الباقي. سأحاول شرحها بأكبر قدر من التفصيل في الأشياء التي تفيدني بشكل مستمر ويحتاج الجميع أن يعرفها وتستخدم بشكل مستمر على الأقل لأخذ نظرة عامة عن أداء النظام. أداة Top تأتي منصبة مع أغلب إن لم يكن كل توزيعات لينكس. وتستطيع تشغيل الأداة بكل سهولة عبر كتابة اسمها في التيرمينال: # top
مثال على النتيجة التي ستحصل عليها عند تنفيذك للأمر:
top - 05:03:18 up 19 days, 6:24, 1 user, load average: 0.16, 0.23, 0.32
Tasks: 69 total, 1 running, 68 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.1%sy, 0.0%ni, 99.9%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 8208628k total, 5567576k used, 2641052k free, 146076k buffers
Swap: 524284k total, 15168k used, 509116k free, 4287680k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 19284 1240 1020 S 0.0 0.0 0:02.80 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:03.54 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
ستلاحظ أنك حصلت على 5 أسطر فيها بعض المعلومات والأرقام يليها جدول. دعونا الآن نشرح أهم الأمور في النتيجة التي حصلنا عليها:
السطر الأول:
top - 05:03:18 up 19 days, 6:24, 1 user, load average: 0.16, 0.23, 0.32
أول معلومة في السطر الأول هي الوقت أو الساعة الحالية للسيرفر 05:03:18 المعلومة الثانية مهمة جدًا وهي تدل على عدد الساعات التي بقي فيها النظام مفعلًا. في هذا المثال 19 days, 6:06 أي 19 يوم وست ساعات. والتي تدل على أن السيرفر لم يتم إطفاءه أو إعادة تشغيله منذ 19 يوم. ازدياد عدد الأيام هو شيء محمود ومدعاه للفخر أحيانًا لأنه يثبت مدى ثبات النظام لديك وعدم احتياجك لاعادة تشغيله بشكل متكرر. يليها عدد المستخدمين الفعالين للنظام وهم واحد في حالتنا. وآخر معلومة هي معدل الضغط على النظام وهي 3 أرقام تدل على نسبة مئوية: آخر دقيقة، آخر 5 دقائق، آخر 15 دقيقة.
السطر الثاني:
Tasks: 69 total, 1 running, 68 sleeping, 0 stopped, 0 zombie
السطر الثاني يتحدث عن الأوامر والعمليات الحالية في النظام. 69 هو إجمالي العمليات أو الأوامر، وعملية واحدة تعمل الآن في النظام، و68 عملية في وضع النوم. و0 عمليات متوقفة و 0 عمليات في وضع الزومبي! سيتم شرحها بشكل مفصل في تدوينة أخرى إن شاء الله.
السطر الثالث:
Cpu(s): 0.0%us, 0.1%sy, 0.0%ni, 99.9%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
السطر الثالث يتحدث عن المعالج ومدى استخدام موارده. تهمنا حاليًا القيم التالية:
- 0.0%us وهي تدل على نسبة الموارد المستخدمة لعمليات المستخدمين
- 0.1%sy وهي تدل على نسبة الموارد المستخدمة لعمليات النظام
- 99.9%id وهي تدل على نسبة الموارد الغير مستخدمة حاليًا في النظام
السطرين الرابع والخامس:
Mem: 8208628k total, 5567576k used, 2641052k free, 146076k buffers
Swap: 524284k total, 15168k used, 509116k free, 4287680k cached
السطرين الرابع والخامس يعرضون معلومات عن إستخدام الذاكرة. السطر الرابع يهمنا بشكل أكبر. أول قيمة 8208628k هي لسعة الرام الكلية لدينا في النظام وهي 8 جيجابايت حاليًا. تليها 5567576k وهي الكمية المستخدمة حاليًا من إجمالي الرام. 2641052k هي الكمية المتوفرة من الذاكرة لدينا وأخيراً لدينا قيمة البفرز وهي 146076k. دعونا نوضح ماهي بشكل مبسط: لو قمت بتنفيذ الأمر Top مباشرة بعد قيامك بتشغيل السيرفر فستلاحظ أن القيمة الثانية المخصصة للكيمة المستخدمة منخفضة جدًا وهذا طبيعي وستلاحظ أن قيمة الـBuffer مقاربة لسعة الرام لديك. ولكن مع مرور الوقت ستلاحظ ارتفاع استخدام الرام حتى وإن لم تكن تضغط على السيرفر بشكل كبير. السبب يعود إلى أن لينكس يقوم بشكل أوتوماتيكي بتخزين بعض الملفات الخاصة بالأوامر في الرام بمبدأ الـCaching حتى يزيد من سرعة النظام. ومع مرور الوقت وزيادة حاجتك للرام بشكل أكبر يقوم بتفريغ الكاش وتخصيص مساحة أكبر من الرام (Buffers) للقيام بالعمليات المعتادة.
جدول العمليات:
القسم الثاني من النتائج الخاصة بأمر Top هو جدول العمليات التي تحدث حاليًا في النظام. التالي هو شرح مختصر لأهم العواميد في الجدول: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
- PID رقم العملية وتستطيع استخدامه لعرض تفاصيل أخرى عنها بأوامر أخرى أو إغلاقها
- USER المستخدم الذي قام بتنفيذ العملية
- RES تشير إلى السعة التي يستهلكها البروسس بشكل حقيقي من الذاكرة
- %CPU النسبة من المعالج التي يستهلكها هذا الأمر
- %MEM النسبة من الذاكرة التي يستهلكها هذا الأمر
- TIME+ إجمالي الوقت الذي قضاه الأمر
- COMMAND الأمر الذي تتبع له كل البيانات السابقة
بهذا الشكل نكون قد أخذنا نظرة عامة بقليل من التفصيل عن هذا الأمر المهم. بعض التفاصيل الدقيقة تجاوزتها وقد أعود لشرحها في تدوينات منفصلة في المستقبل بإذن الله.
2 تعليقات
تعقيبات: سلسلة مراقبة أداء أنظمة لينكس 2: أداة HTop - مدونة أمين علي
تعقيبات: سلسلة مراقبة أداء أنظمة لينكس 3: أداة iostat - مدونة أمين علي