متى يجب أن تقلق بخصوص CPU Load Average؟

نقصد ب Load Average الأرقام الثلاثة التي تظهر حينما نكتب أحد الأمرين التاليين: top أو uptime مثل هذا المثال:
load average: 0.88, 0.73, 0.86 أو مثل الذي يظهر بالصورة,


معظم الأشخاص لا يعلمون ماذا يقصد بتلك الأرقام, و لكنها مفيدة جدا في تجنب تشغيل الحاسوب فوق طاقته.
الأرقام الثلاثة التي تظهر لك تمثل المعدل قبل دقيقة, 5 دقائق و 15 دقيقة على التوالي, و كلما كانت تلك المعدلات أقل كلما كان ذلك أفضل, و العكس بالعكس أي كلما إذا كانت اﻷرقام مرتفعة فهذا يعني مشكلة في الجهاز أو بمعنى آخر الحاسوب غير قادر على مجارات المطلوب منه. سنتعرف الآن كيف يمكننا أن نحدد ما إذا كان الرقم مرتفعا أم لا.

مفهوم الحركة

المعالج اﻷحادي -أي البسيط الذي كان مستعمل قبل سنوات- يمكن تشبيهه بطريق باتجاه واحد أي أنه في حال كانت السيارات تمر عبر هذا الطريق فلا يمكنها مجاوزة السيارة التي أمامها و لو كان عدد السيارات كبيرا فستحصل عملية اكتظاظ, نفس اﻷمر بالنسبة للحاسوب حيث تصبح السيارات ممثلة في العمليات التي يقوم بها الحاسوب, الآن لنحول إلى اﻷرقام,

0.00 الطريق خال عموما الأرقام التي بين 0.00  و 1.00 تعني أنه لا يوجد اكتظاظ و بالتالي أي شيئ تقوم به سينفذ في الحين و من دون مشاكل.



1.00 المعدل بالضبط الأمور بخير لحد الآن و لكن الجهاز يصبح أبطأ نسبيا,


أكثر من 1.00 يعني أنه بدأ بالحفظ  الطريق ممتلئ و كل سيارة جديدة تأتي عليها أن تنتظهر مرور السيارات التي قبلها لأن هناك إكتظاظ, مثال 3.00 يعني ثلاثة سيارات تبحث عن المرور في نفس الوقت عبر طريق لا يسمح إلا بمرور سيارة  واحدة.



يعتمد Unix في احتساب تلك المعدلات على الفترة التي يستغرقها الملف في الإنتظار قبل أن ينتهي (run-queue length): عدد العمليات (processes) التي سيقوم بتنفيذها إضافة إلى الوقت الذي تستغرقه كل عملية.

حسنا, هل تقول أن 1.00 هي الحالة المثالية ؟

 ليس بالضبط, المشكل في 1.00 أنه لا يوجد فارق بين المرحلة الحالية وبين المرحلة التي تليه, جل الخبراء الذي يديرون الأنظمة يضعون 0.70 كالخط الذي يفصل الحالة الجيدة عن السيئة حتى لا تحصل تطورات مفاجأة,

  • أكثر من 0.70 الوقت مناسب لتبدأ البحث عن حل قبل أن تتفاقم الأمور,
  • 1.00 ابحث عن حل للمشكل الآن لأن الأمور في طريقها لأن تسوء.
  • 5.0 أنت في مشكلة حقيقية, ستلاحظ أن الجهاز يجمد و يتوقف كثيرا 
ماذا عن الأجهزة متعددة المعالجات؟ جهازي يشير إلى 3.00 و لكن اﻷمور تسير بشكل جيد.

في اﻷجهزة متعددة المعالجات الأمر يعتمد على عدد المعالجات التي بالجهاز ففي الأجهزة الأحادية 1.00 يصل الجهاز لحالة استعمال 100%  و في ثنائي المعالجات dual-core يكون 2.00 و المعالجات الرباعية quad-core يكون 4.00 و هكذا ...


حسنا, كيف أعرف كم لدي من معالج في الجهاز الذي أعمل عليه؟

لنحصل على معلومات تفصيلية عن كل معالج نستعمل الأمر التالي: cat /proc/cpuinfo
أما إذا أردنا فقط معرفة عدد المعاجات من دون تفاصيل نكتب:

grep 'model name' /proc/cpuinfo | wc -l


Reference
More Reading

1 comments: