كيفية ضبط تحميل وحدة المعالجة المركزية على صندوق Red Hat Linux؟

StackOverflow https://stackoverflow.com/questions/141707

  •  02-07-2019
  •  | 
  •  

سؤال

انا املك RHEL المربع الذي أحتاج إلى وضعه تحت مقدار معتدل ومتغير من حمل وحدة المعالجة المركزية (50٪ -75٪).

ما هي أفضل طريقة للقيام بذلك؟هل يوجد برنامج يقوم بذلك ولا علم لي به؟يسعدني أن أكتب بعض أكواد C لتحقيق ذلك، لكني لا أعرف ما هي مكالمات النظام التي ستساعد.

هل كانت مفيدة؟

المحلول

هذا هو بالضبط ما تحتاجه:http://weather.ou.edu/~apw/projects/stress/

من الصفحة الرئيسية:"الإجهاد هو مولد عبء عمل بسيط لأنظمة POSIX.فهو يفرض قدرًا قابلاً للتكوين من وحدة المعالجة المركزية والذاكرة والإدخال/الإخراج وضغط القرص على النظام.إنه مكتوب بلغة C، وهو برنامج مجاني مرخص بموجب GPL."

نصائح أخرى

ابحث عن برنامج بحث بسيط عن الأعداد الأولية يحتوي على كود المصدر.قم بتعديل الكود المصدري لإضافة استدعاء nanosleep إلى الحلقة الرئيسية مع أي تأخير يمنحك حمل وحدة المعالجة المركزية المطلوب.

إحدى الطرق الشائعة للحصول على بعض التحميل على النظام هي تجميع حزمة برامج كبيرة مرارًا وتكرارًا.شيء مثل نواة لينكس.

احصل على نسخة من الكود المصدري، واستخرج tar.bz2، وانتقل إلى دليل مصدر المستوى الأعلى، وانسخ تكوين kernel الخاص بك من /boot إلى .config أو zcat /proc/config.gz > .config، ثم قم بإنشاء oldconfig، ثم احيانا صحيح؛قم بإجراء التنظيف && make bzImage;منتهي

إذا كان لديك نظام SMP، فإن make -j bzImage أمر ممتع، وسوف يؤدي إلى إنشاء مهام بالتوازي.

مشكلة واحدة في هذا هي ضبط حمل وحدة المعالجة المركزية.سيكون الحد الأقصى لتحميل وحدة المعالجة المركزية باستثناء عند الانتظار على القرص I/O.

ربما يمكنك القيام بذلك باستخدام برنامج Bash النصي.استخدم "ps -o pcpu | grep -v CPU" للحصول على استخدام وحدة المعالجة المركزية لجميع العمليات.أضف كل هذه القيم معًا للحصول على الاستخدام الحالي.ثم لديك حلقة مشغولة تستمر بشكل أساسي في التحقق من هذه القيم، ومعرفة الاستخدام الحالي لوحدة المعالجة المركزية، وانتظار مقدار محسوب من الوقت للحفاظ على المعالج عند عتبة معينة.هناك حاجة إلى مزيد من التفاصيل، ولكن نأمل أن يمنحك هذا نقطة انطلاق جيدة.

تفقد هذا مراقب وحدة المعالجة المركزية لقد وجدت النص وحاول الحصول على بعض الأفكار الأخرى حول كيفية تحقيق ذلك.

يعتمد الأمر حقًا على ما تحاول اختباره.إذا كنت تختبر تحميل وحدة المعالجة المركزية فقط، فستعمل البرامج النصية البسيطة لتناول دورات وحدة المعالجة المركزية الفارغة بشكل جيد.لقد اضطررت شخصيًا إلى اختبار أداء مصفوفة RAID مؤخرًا واعتمدت على Bonnie++ وIOZone.سيضع IOZone حملاً مناسبًا على الصندوق، خاصة إذا قمت بتعيين حجم الملف أعلى من ذاكرة الوصول العشوائي (RAM).

قد تكون أيضا مهتما ب هذا المقال.

استخدم الأمر "لطيف".

أ) الأولوية القصوى:$ لطيف -n -20 my_command

أو

ب) الأولوية الدنيا:$ لطيف -ن 20 my_command

برنامج نصي بسيط لتحميل وتثبيت وحدة المعالجة المركزية باستخدام awk.يقوم البرنامج النصي بإجراء حسابات رياضية وبالتالي يصل حمل وحدة المعالجة المركزية إلى ذروته عند القيم الأعلى التي يتم تمريرها إلىloadserver.sh.

الخروج من البرنامج النصي @ http://unixfoo.blogspot.com/2008/11/linux-cpu-hammer-script.html

ربما يمكنك استخدام بعض أدوات توليد التحميل لإنجاز ذلك، أو تشغيل برنامج نصي لأخذ كافة دورات وحدة المعالجة المركزية ثم استخدامها لطيف - جيد و renice على العملية لتختلف النسبة المئوية للدورات التي تحصل عليها العملية.

فيما يلي نموذج لبرنامج نصي bash سيشغل جميع دورات وحدة المعالجة المركزية المجانية:

#!/bin/bash
while true ; do
true
done

يتيح Lookbusy القيمة المحددة لحمل وحدة المعالجة المركزية.موقع المشروع

lookbusy -c util[-high_util], --cpu-util util[-high_util]

i.e. 60% load
lookbusy -c 60

لست متأكدا ما هو هدفك هنا.أعتقد أن glxgears سيستخدم وحدة المعالجة المركزية بنسبة 100%.

لذا ابحث عن أي عملية تعرفها ستصل إلى الحد الأقصى لوحدة المعالجة المركزية بنسبة 100%.

إذا كان لديك أربعة مراكز لوحدة المعالجة المركزية (0 1 2 3)، فيمكنك استخدام "مجموعة المهام" لربط هذه العملية لقول وحدات المعالجة المركزية 0 و1.يجب أن يتم تحميل الصندوق الخاص بك بنسبة 50٪.لتحميله بنسبة 75%، قم بربط العملية بـ 0 1 2 وحدة معالجة مركزية.

تنصل:لم تختبر هذا.واسمحوا لنا أن نعرف النتائج.حتى لو نجح هذا، لست متأكدًا مما ستحققه من هذا؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top