الــ System Load ما هو؟ وكيف ترفع أداء سيرفرك؟ ((الجزء الأول))

السلام عليكم ورحمة الله وبركاته …

اليوم تذكرت أيام الجامعة والبرمجة وخاصة مادة Operating System … حيث درسني إياه بروفسور جزائري لله يوفقه ويسهل عليه … وكان أيامها يطلب منا مشاريع برمجية على لغة البرمجة C … ولم يكن يقبل أن يكون البرنامج على الويندوز … كان متعصب لشيء إسمه “Unix” … حقيقةً في البداية كنت ألومه وكنت أدخل معاه في جدالات كثيرة جدا … ولكن كان يتقبلها مني ويقنعني بالنهاية بالنهاية إنه البرمجة تحت بيئة UNIX شي والبرمجة تحت بيئة WINDOWS شيء آخر تماماً … المهم لا أريد أن أجعل الموضوع يصبح تاريخي … كل ما هنالك تذكرت تلك اللحظات عند كتابتي لهذا الموضوع …
ندخل في المفيد … أوﻻ ما هو الــ System Load ؟ أو ما يعرف عند الكثيرين الــ Load ؟
وهو معدل التعليمات processes في طابور التنفيذ process queue والمنتظر تنفيذها في وقت زمني معيين …

كيف يمكنك معرفة الــ Load لجهازك ؟
أستعمل أحد الأدواة التالية: top أو uptime أو gnome-system-monitor المسمى System Monitor أو ksysguard والمسمى KDE System Guard … كل هذه الأدوات ممكن تقرأ من خلالها الــ Load لجهازك …
الحين أوكي قرأت الــ Load ولكن ماذا يعني لي عمليا ؟ (الكلام هذا خاص بالأجهزة أحادي المعالج Single Processor )
الــ Load لو نفرض كان = 1 ماذا يعني ؟ يعني إنه طاقة إستيعاب المعالج مستغلة بشكل كامل من قبل نظام التشغيل والبرامج التي شغلتهم …
الــ Load لو نفرض كان أكبر من 1 ماذا يعني ؟ يعني إنه طاقة إستيعاب المعالج غير كافية لتشغيل كل هذه البرامج بنفس اللحظة …
الــ Load لو نفرض كان أقل من 1 ماذا يعني ؟ يعني بكل تأكيد إنه الطاقة الإستيعابية لجهازك غير مستغلة بالكامل …

الآن ستسألني طيب كيف لو كان عندي معالجين Multi-Processor على الجهاز ؟
أقول لك إنه الــ Load يجب أن ﻻ يتجاوز عدد المعالجات Processors الموجودة على جهازك …
الحين لرفع أداء المعالج عليك أما بتقليل عدد الخدمات التي تعمل بنفس الوقت والتي قد يكون البعض منها ﻻ حاجة لك فيها … وسيكون لي موضوع خاص عن هذه المسألة قريبا إن شاء الله … أو إنك تعمل ترقية للمعالج الذي لديك من خلال شراء واحد جديد وذو كفائة أكبر … لكن يجب ان تراعي مسألة وهي: هل أنت فعلا بحاجة له أم ﻻ ؟ أي هل أنت بحاجة لرفع كفاءة المعالج أم إنه الحالي يمشي الحال ؟ ﻻ ترمي أموالك على شيء أنت لست بحاجة له … وتصبح مثل الشركات أول ما يطلع موديل جهاز جديد يروح يغيير أجهزة الشركة كلها حتى وإن شغل الشركة ما هو بحاجة لكن خلال الموديل يا عم …
الآن نأتي الى مسألة الذاكرة الــ RAM … ليس دائما الأداء لنظامك سببه المعالج … ولكن أيضا ممكن يكون قلة في الذاكرة المستعملة للنظام … لهذا عليك أن تراقب أيضا الذاكرة … يمكنك ذلك من خلال top، gnome-system-monitor، ksysguard أو free وغيرهم … طبعا قضايا الذاكرة ﻻ تقتصر على الــ RAM فقط … بل على الذاكرة الإستبدالية SWAP أيضا … في السابق المقولة تقول ضع ضعف حجم الرام لديك SWAP لكن هذه ﻻ تنفع دائما وأصبحت قديمة بعض الشيء … ﻷنه كلنا يعلم سرعة الذاكرة الرئيسية أكبر بكثير من سرعة الــ SWAP الي هو أصلا جزء Partition من القرص الصلب لديك … والي سرعته ﻻ تقارن مع سرعة الذاكرة الرئيسية … لهذا ﻻ تظن كل ما كبرت الــ SWAP ستحصل على كفاءة عالية على مستوى الذاكرة … قضية أخرى تخص الــ SWAP خاصة على الأجهزة التي تمتلك أكثر من قرص صلب HardDisk … يفضل تكون هناك أكثر من SWAP Partition … لزيادة الكفاءة … صراحة هذه القضية بالذات سأتركها لك لكي تستنتجها بنفسك عزيزي القاريء …
قبل ان أنسى الــ SWAP ممكن قياسه بنفس أدواة الذاكرة المذكورين أعلاه بالإضافة الىvmstat … أيضاً لرفع أداء وكفاءة الذاكرة عليك بالضبط أن تعمل بنفس ما ذكرت في مسألة المعالج … أما تقلل عدد الخدمات والتي تحجز مساحة من الذاكرة أو إنك تشتري ذاكرة إضافية … يعني قضايا كثيرة ذكرت لكم بعض منها ﻷنه قضية الكفاءة ليست متعلقة بالذاكرة والمعالج فقط … وأترك الباقي للمعقبين على الموضوع …

الى هنا نهاية الجزء الأول … والجزء الثاني سيتحدث عن الــ iostat وعن الأداء للشبكة …

أخوكم B!n@ry …

About [email protected]

[Between Teams of Red and Blue, I'm with the Purple Team]
This entry was posted in GNU/Linux. Bookmark the permalink.

10 Responses to الــ System Load ما هو؟ وكيف ترفع أداء سيرفرك؟ ((الجزء الأول))

  1. PuppetMaster says:

    إلى الأمام دائما يا أخى
    ربنا يوفقك دائما
    جزاك الله خيرا على الموقع الجميل

  2. رشيد says:

    جزاك الله خير اخوي بيناري.
    استفدت من موضوعك هذا …
    وعندي سؤال اتمنى اجد عندك الاجابة …
    عندك مشكلة بالسيرفر الاحظ مرات نفس الاي بي يقوم بطلب ملف معين من موقعي ويكرر الطلب مئات المرات في نفس الوقت مما يؤدي الى استهلاك الذاكرة ومن ثم يبدأ استهلاك ال swap حتى يتوقف السيرفر عن العمل (اعتقد ال apache يعمل ريستارت) وتعطل السيرفر يكون مرات ل 20-25 دقيقة وهذا الامر مزعجني.
    الشركة تقول انه لازم تعمل ترقية لسيرفرك ولكنني غير مقتنع بكلامهم, فحصت ال log files ووجدت انه كل مرة يتوقف السيرفر عن العمل تكون هذه الظاهرة موجودة – محاولة تنزيل ملف عشرات او مئات المرات لنفس الطلب, واخر مرة عندما كان اللود مرتفع والذاكرة مستهلكه استطعت ان اعمل بلوك للاي بي المخالف وعلى الفور انخفض اللود وانخفضت الذاكرة.
    على علمك في حل لهذه المشكلة ؟ لانه اليوم عملت بلوك لاي بي معين ممكن بكرة تظهر نفس المشكلة مع اي بي ثاني.
    وهل في سكربت يعطيني notification انه السواب والذاكرة واللود عاليين ؟ عندها استطيع تدارك الامر قبل توقف السيرفر عن العمل. سمعت عن سكربت sim لكن لم انجح بتركيبه ولا ادري ما مدى فائدته.
    لا اريد ان اطيل اكثر فالمشاكل لا تنتهي واكتفي بما كتبت لك.
    تقبل تحياتي,
    اخوك رشيد.

  3. B!n@ry says:

    أهلا أخي PuppetMaster …
    أعتذر جداً إني لم أرد عليك سابقاً على ما يبدو إني لم أنتبه لهذا الرد … سامحني يا طيب ما هي من عادتي … أشكرك على مرورك ودعواتك الجميلة التي أدعوا الله أن يحقق لك المثل …
    أعتذر مرة أخرى وخالص الود والتقدير لك …

  4. B!n@ry says:

    هلا أخوي رشيد … حياك الله يالغالي …
    الحمد لله إن المواضيع التي تكتب تكون محل إهتمام الكثيرين، وتفيدهم ولو القليل في معرفة بعض الأمور الغامضة ومنها نستفيد جميعاً بتبادل معلوماتنا …

    بخصوص المشكلة التي عندك يا رشيد هذه تسمى DoS أي Denial of Service وما يحدث عندك هو أحد أنواعها … حل هذه المشكلة كثير منها أنك تمنع الأي بي يطلب ملف معيين أكثر من مرة … أو تستخدم جدار ناري معيين من شركة الإستضافة وخاصة الـ Hardware ﻷنه بعض الأحيان الجدران النارية التي عبارة عن برامج ﻻ تتحمل هذا الضغط … وهذه الخدمة على فكرة غالية نوعاً ما يمكن تصل الى 100 دوﻻر بالشهر … ولهذا غالب المدراء للخوادم العرب منهم وحتى الأجانب يستعملون جدار ناري على شكل برنامج مثل cfs أو apf:

    CFS Firewall

    APF Firewall

    وأيضاً عليك متابعة الأمر يدوياً كما فعلت هذه المرة أو تقوم بكتابة سكربت تعمل لك ذلك … بخصوص التنبيه حول هذه المسألة Notifiy You … عادي رشيد أعمل لك سكربت تقرأ اللـ Load للسيرفر وحين يكون الــ Load عالي ترسل لك ميل على بريدك … مو صعبة على فكرة … على فكرة سأقوم بكتابة سكربت اليوم أو بكرى يقوم بعمل مشابه سأضعه هنا في الزون عسى يكون محل فائدة لك … لكن على كل حال مجتمع لينوكس العربي سيكون حاضر للمساعدة والزون حاضر لمساعدة الجميع هذا من ما ﻻ شك فيه … ولهذا إن شاء الله لو أحتجت الى شيء لن نقصر معك فيه …

    أي خدمة أو سؤال ﻻ تتردد يا خوي رشيد … وشاكر لك هذه الزيارة الجميلة وعسى تعيدها علينا بإستمرار … تشرف الزون بك …
    دمت بود …

  5. رشيد says:

    جزاك الله خير اخي بيناري على ردك السريع.

    أضفت مدونتك على google reader لما فيها من معلومات وفائدة.

    سأنتظر منك السكربت لانه سيساعدني بشكل كبير لانه الصراحة تعبت من دخول ال WHM لفحص ال Server Status …

    ونقطة اخيرة لا اريد ان اطيل عليك:

    يوميا اقوم بفحص ال Raw Log Files بعد تحميلها من السي بانل وتحليلها بواسطة احد البرامج المختصة. المشكلة انه السي بانل يعطيني معلومات من بداية الشهر بينما اكون معني فقط باخر 12 او 24 ساعة من الاحصايات.

    في طريقة انه اسحب من السيرفر معلومات اخر 12-24 ساعة فقط ؟

    اكرر شكري لك اخ بيناري

    اخوك رشيد

  6. B!n@ry says:

    حياك الله يا رشيد ما عملت شي صراحة …
    بخصوص السكربت التي تعمل مراقبة للأباتشي هذي شي بسيط هل تفيدك ؟ أنت أعلم مني … لو لم تفيدك خبرني لكي نعدل عليها حسب الإحتياجات …
    apmon.sh

    بخصوص عمل Extract لبيانات محددة من الــ Log Files سأرى كيف يمكن عمل سكربت لها ﻷنها مش صعبة كثير كما أتصورها للوهلة الأولى …

    شاكر لك إضافتك للزون عندك، لكن تأكد يبقى الزون متواضعاً بما فيه ولكن إن شاء الله أحاول أرتقي فيه أكثر وأكثر …
    لك مني خالص الود والتقدير …

  7. ahmed says:

    السلام عليكم هل يوجد سكريبت معين لعمل ريستارت لملف تشغيل في مسار
    usr/bin
    يعمل كل فترة ريستارت لهذا الملف

    ياعني يعمل kill لامر تشغيل الملف ثم اعادة تشغيله من جديد

  8. B!n@ry says:

    وعليكم السلام أهلا أخوي أحمد …
    سأقوم بعمل السكربت هذا إن شاء الله لك، ولكن سأعمله لنفرض لخدمة الـ Apache …
    وسأضعه هنا لك … وﻻ يهمك …
    شكراً لمرورك ودمت بود …

  9. ahmed says:

    شكرا لك اخي B!n@ry ومنتظرك

    وهل يوجد ايضا سكريبت مثلا اريد وقف ملف بــusr/bin يتعمل kill للامر الخاص بتشغيل الملف في وقت معين ثم اعادة تشغيله وبعدها لا يعيدها الا بتشغيل السكريبت مرة آخرى حسب تغيبر الوقت لعمل ريستارت لتشغيل الملف مرة آخرى

    وشكرا كثيرا لك على ردك السريع

    تقبل فائق التقدير والاحترام

  10. Pingback: B!n@ry-z0ne » أرشيف المدونة » B!n@ry Kill Process بإستخدام إسم الـ Process

Comments are closed.