اختبار إجهاد ذاكرة لينكس. دليل البرامج: أدوات مساعدة مفيدة لرفع تردد التشغيل والمزيد

اختبار إجهاد ذاكرة لينكس.  دليل البرامج: أدوات مساعدة مفيدة لرفع تردد التشغيل والمزيد
اختبار إجهاد ذاكرة لينكس. دليل البرامج: أدوات مساعدة مفيدة لرفع تردد التشغيل والمزيد

لماذا يستحق إجراء اختبار إجهاد وحدة المعالجة المركزية؟ لاختبار موثوقية واستقرار جهازك/نظامك. يمكن أن يساعدك إجراء اختبار التحمل أيضًا في معرفة ما إذا كنت بحاجة إلى ترقية جهازك أو إضافة تبريد جديد إليه. في موضوعي "اختبار ضغط وحدة المعالجة المركزية على Linux (Debian/Ubuntu/Mint أو RedHat/CentOS/Fedora)" سأخبرك بكيفية استخدام الأداة المساعدة cpuburn لاختبار الحمل على المعالج (المعالجات).

تثبيت برنامج CPUburn.

تثبيت cpuburn على /Debian/Ubuntu/Mint:

# apt-get update && apt-get install cpuburn

تثبيت cpuburn على RedHat/CentOS/Fedora:

# تحديث yum && yum تثبيت cpuburn

يمكنك الاطلاع على دليل الاستخدام للأداة المساعدة cpubun عن طريق تشغيل:

# رجل سي بي بورن

cpuburn، burnBX، burnK6، burnK7، burnMMX، burnP5، burnP6- مجموعة من البرامج لاختبار الحمل الثقيل على وحدة المعالجة المركزية.

حرقP5الأمثل ل معالجات إنتلبنتيوم مع/بدون MMX.
حرقP6الأمثل لمعالجات Intel PentiumPro وPentium II وIII.
burnK6الأمثل لمعالجات AMD K6.
BurnK7الأمثل لمعالجات AMD Athlon/Duron.
com.burnMMXيختبر اختبار ذاكرة التخزين المؤقت/الذاكرة البديلة على جميع المعالجات المزودة بـ MMX.
BurnBXاختبار ذاكرة التخزين المؤقت/الذاكرة البديلة المُحسّن لمعالجات Intel.

تم تصميم هذه البرامج لتحميل معالجات x86 قدر الإمكان لأغراض اختبار النظام. لقد تم تحسينها من أجل المعالجات المختلفة. يتم ترميز تعليمات FPU وALU بلغة التجميع في حلقة لا نهاية لها. لا يختبرون جميع التعليمات. الهدف هو إنشاء حمل ومعرفة درجة الحرارة التي يتم إنشاؤها عن طريق وضع الحمل على المعالج نفسه، والنظام، اللوحة الأموإمدادات الطاقة.

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

يجري البرنامج المطلوبفي الخلفية، والتحقق من نتيجة الخطأ. يمكنك تكرار هذا الأمر لكل معالج. على سبيل المثال،

#burnP6 || صدى $؟ &

لمراقبة تقدم برنامج CPUBurn، استخدم ps. يمكنك مراقبة درجة حرارة وحدة المعالجة المركزية و/أو جهد النظام عبر ACPI أو استخدام مستشعرات LM طالما أن نظامك يدعمها. بعد الانتهاء، من المفيد إنهاء العملية (العمليات) المحددة، على سبيل المثال:

#killallburnP6

قم بتثبيت htop لمراقبة التحميل على الخادم الخاص بك.

# apt-get update && apt-get install htop

# تحديث yum && yum install htop

لنقم بتشغيل htop للتحقق من الحمل:

تم الانتهاء من اختبار إجهاد وحدة المعالجة المركزية على Linux (Debian/Ubuntu/Mint أو RedHat/CentOS/Fedora).

لماذا يستحق إجراء اختبار إجهاد وحدة المعالجة المركزية؟ لاختبار موثوقية واستقرار جهازك/نظامك. يمكن أن يساعدك إجراء اختبار التحمل أيضًا في معرفة ما إذا كنت بحاجة إلى ترقية جهازك أو إضافة تبريد جديد إليه. في موضوعي "اختبار ضغط وحدة المعالجة المركزية على Linux (Debian/Ubuntu/Mint أو RedHat/CentOS/Fedora)" سأخبرك بكيفية استخدام الأداة المساعدة cpuburn لاختبار الحمل على المعالج (المعالجات).

1. قم بتثبيت برنامج CPUburn.

تثبيت cpuburn على /Debian/Ubuntu/Mint:

  • # apt-get update && apt-get install cpuburn

تثبيت cpuburn على RedHat/CentOS/Fedora:

  • # تحديث yum && yum تثبيت cpuburn

يمكنك الاطلاع على دليل الاستخدام للأداة المساعدة cpubun عن طريق تشغيل:

    # رجل سي بي بورن

حرقP5الأمثل لمعالجات Intel Pentium مع/بدون MMX.cpuburn، burnBX، burnK6، burnK7، burnMMX، burnP5، burnP6- مجموعة من البرامج لاختبار الحمل الثقيل على وحدة المعالجة المركزية.

حرقP6الأمثل لمعالجات Intel PentiumPro وPentium II وIII.
burnK6الأمثل لمعالجات AMD K6.
BurnK7الأمثل لمعالجات AMD Athlon/Duron.
com.burnMMXيختبر اختبار ذاكرة التخزين المؤقت/الذاكرة البديلة على جميع المعالجات المزودة بـ MMX.
BurnBXاختبار ذاكرة التخزين المؤقت/الذاكرة البديلة المُحسّن لمعالجات Intel.

تم تصميم هذه البرامج لتحميل معالجات x86 قدر الإمكان لأغراض اختبار النظام. لقد تم تحسينها لمختلف المعالجات. يتم ترميز تعليمات FPU وALU بلغة التجميع في حلقة لا نهاية لها. لا يختبرون جميع التعليمات. الهدف هو إنشاء حمل ومعرفة درجة الحرارة التي يتم إنشاؤها عن طريق وضع حمل على المعالج نفسه والنظام واللوحة الأم ومصدر الطاقة.

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

قم بتشغيل البرنامج المطلوب في الخلفية، والتحقق من نتيجة الخطأ. يمكنك تكرار هذا الأمر لكل معالج. على سبيل المثال،

  • #burnP6 || صدى $؟ &

لمراقبة تقدم برنامج CPUBurn، استخدم ps. يمكنك مراقبة درجة حرارة وحدة المعالجة المركزية و/أو جهد النظام عبر ACPI أو استخدام مستشعرات LM طالما أن نظامك يدعمها. بعد الانتهاء، من المفيد إنهاء العملية (العمليات) المحددة، على سبيل المثال:

  • #killallburnP6

قم بتثبيت htop لمراقبة التحميل على الخادم الخاص بك.

  • # apt-get update && apt-get install htop
  • # تحديث yum && yum install htop

لنقم بتشغيل htop للتحقق من الحمل:

  • #htop

تم الانتهاء من اختبار إجهاد وحدة المعالجة المركزية على Linux (Debian/Ubuntu/Mint أو RedHat/CentOS/Fedora).

فائدة iperf. على أحد أجهزة الكمبيوتر، يتم تشغيل الخادم (باستخدام الأمر iperf -s)، وعلى الكمبيوتر الآخر - العميل (باستخدام الأمر iperf -c server_ip). هناك إصدارات لكل من Windows وLinux (sudo apt-get install iperf). لسوء الحظ، لم أتمكن من الاستفادة من أكثر من 130 ميجابايت/ثانية مع عميل واحد، لذا يمكنك تشغيل العديد من العملاء، ويفضل حتى على عدة أجهزة.

تسخين المعالج

الأداة المساعدة cpuburn (sudo apt-get install cpuburn). تم إطلاقه باستخدام الأمر burnP5 (توجد إصدارات مخصصة لـ معالجات مختلفة- الإصدار P5 مناسب تمامًا لـ Intel Atom). يقوم بتحميل المعالج بنسبة 100٪، ويسمح لك بالتحقق من كفاءة التبريد وموثوقية دوائر الطاقة أثناء الأحمال القصوى. يجب إجراء اختبارات التحمل هذه تحت التحكم في درجة حرارة المعالج والمكونات الأخرى - على سبيل المثال، قد يتم تبريد المعالج جيدًا، ولكن لم يتم تركيب حتى مشعاع صغير على دائرة الطاقة. في ظل الحمل الثقيل، يستهلك المعالج الكثير من التيار، وقد يسخن نظام الطاقة (كفاءته ليست 100٪).

اختبار القرص

Sudo apt-get install hdparm

sudo hdparm -tT /dev/sda

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

من المفيد جدًا إجراء كل هذه الاختبارات بعد ترقية نظام الطاقة، وقبل إخفاء الخادم على الرف البعيد.

مشاهدات المشاركة: 152

لقد قمت بإجراء اختبار Linpack وتساءلت: ألم يحن الوقت لتغيير المعجون الحراري على جهاز الكمبيوتر المحمول الخاص بي؟

نعم، بناءً على نتائج عدة اختبارات متتالية (لن أفسد المقال بالصور)، من الواضح أن المعالج يدخل في الاختناق (تخطي دورات الساعة وإعادة ضبط التردد عند التسخين)، ولكن ما مدى سرعة ذلك البدء في القيام بذلك؟

اختبار إجهاد وحدة المعالجة المركزية في محطة Linux

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

لقد بدأت مع sysbench:

سودو ملائمة تثبيت sysbench

sysbench --num-threads=4 --test=cpu --cpu-max-prime=100000 تشغيل

  • --عدد المواضيع = 4- هذا هو عدد الخيوط، لدي معالج Intel® Core™ i7-640M ثنائي النواة وأربعة خيوط، إذن 4؛
  • --cpu-max-prime=100000- هذا هو الحد الأقصى لعدد العمليات التي تم إجراؤها، لقد قمت بتعيينه على 100000، لأنه الافتراضي هو 10000، ويكتمل الاختبار بسرعة كبيرة.

ثم تحولت إلى Linpack. نظرًا لأن المعالج الخاص بي من Intel ولدي قدر معين من الكسل (الكسل هو محرك التقدم)، فقد قمت بتنزيل Intel Linpack الجاهز وتنزيله وتفكيكه، بعد أن قمت مسبقًا بإنشاء دليل linpack في الدليل الرئيسي الخاص بي:

mkdir ./linpack
مؤتمر نزع السلاح ./linpack
wget http://registrationcenter-download.intel.com/akdlm/irc_nas/9752/l_mklb_p_2018.3.011.tgz
القطران -xvzf ./l_mklb_p_2018.3.011.tgz

ل معالجات ايه ام ديلن أجرب هذا الخيار، لأن مترجم Intel يقوم بإدراج الإشارات المرجعية التي تتحقق من المعالج وإذا لم تكن Intel... حسنًا، فكر فقط، سيقوم المعالج بتنفيذ مائة أو اثنتين من التعليمات الإضافية ومن الواضح أنه سيفقد الأداء. بالنسبة لـ AMD، من الأفضل بناء Linpack من المصادر، على سبيل المثال، من هذه. في هذه المقالة لن أفكر في التجميع من الكود المصدري - اقرأ الملف README الموجود في الكود المصدري.

دعنا نعود إلى Linpack من Intel. هناك الكثير من الأشياء غير الضرورية التي لا أحتاج إليها، ولكنني سأفكر في ما أحتاج إليه فيما يتعلق بالإصدار 2018.3.011. سأذهب على الفور إلى الدليل المطلوب حتى لا أضطر إلى كتابة أوامر طويلة لاحقًا:

cd ./l_mklb_p_2018.3.011/benchmarks_2018/linux/mkl/benchmarks/linpack

نظرًا لأن Linpack من Intel مصمم افتراضيًا لاختبار خادم Xeons، فسنقوم بإنشاء ملفنا الخاص الذي سيتم استخدامه كخيارات إدخال - سنقوم ببساطة بتقليل عدد الاختبارات، وإلا فسنتعب من الانتظار "بضعة أيام" اختبار لإكمال. لدي Linux Mint LMDE 3 لذا أستخدمه محرر النص xed، وأنا أحبه بسبب وظائفه الكبيرة، خاصة عند تشغيله كجذر - فهو يتغير لونه إلى اللون الأحمر. وهكذا، قم بإنشاء ملف في نفس الدليل الذي انتقلنا إليه، على سبيل المثال، my_test:

وانسخ المحتويات التالية إلى الملف الذي تم إنشاؤه:

إصدار الذاكرة المشتركة من Intel(R) Distribution لمعيار LINPACK*. *قد تتم المطالبة بالأسماء والعلامات التجارية الأخرى باعتبارها مملوكة للآخرين.
نموذج ملف البيانات lininput_xeon64.
5# عدد الاختبارات
1000 2000 5000 10000 20000 # أحجام المشكلة
1000 2000 5008 10000 20000 # الأبعاد الرائدة
4 2 2 2 1 # مرات لإجراء الاختبار
4 4 4 4 4 # قيم المحاذاة (بالكيلوبايت)

حسنًا، قم بالفعل بتشغيل Linpack باستخدام الملف الذي تم إنشاؤه:

./xlinpack_xeon64 -i ./my_test

./xlinpack_xeon64 ./my_test

يمكنك أيضًا استخدام Stress-ng أو Stress، لكن هذا لا يحل المشكلة التي حددتها. هذه الأدوات المساعدة لا تظهر لي مخرجات درجة الحرارة والترددات والوقت منذ البداية.

يمكن لأجهزة الاستشعار إظهار درجة الحرارة - اقرأ المزيد حول تثبيت هذه الأداة المساعدة. وستكون هناك حاجة إلى هذه الأداة المساعدة في مواصلة النظر في سؤالي. Linux رائع وقوي: يمكن حل نفس المهمة بطرق مختلفة. كنت كسولًا جدًا لدرجة أنني لم أتمكن من تعلم لغة C، لذلك كتبت الجزء المفقود في BASH، لأنه لم يكن هناك الكثير من الأسطر. بدون تثبيت أجهزة الاستشعار، لن يعمل البرنامج النصي الخاص بي. بطبيعة الحال، لم أكتب الكشف عن الاختناق - سيكون مرئيا بالفعل من إعادة ضبط التردد ودرجة الحرارة. هنا هو البرنامج النصي نفسه:

#!/بن/باش
out=0 # متغير التحكم في عملية الاختبار
pid_test="tty" # PID لعملية الاختبار (التي تم إنشاؤها بواسطة دليل موجود للتشغيل بدون وسيطات)
cpus_num=$(cat /proc/cpuinfo | grep -ci "processor") # عدد المعالجات/النوى/الخيوط
echo -en "\033[?25l" 1>&2 # إخفاء المؤشر
echo -en "\033[^:]*: //g" | نوع معالج الإخراج -u #
echo -en "\033=$(sensors | sed "/Core ""$i""/!d;s/.*crit = +\(.*\)[.]°C).*/\1/ ")
إذا [ -n "$(cpu_crit_temp[i])" ]
ثم
دع cpu_red_temp[i]=cpu_crit_temp[i]-10
دع cpu_yel_temp[i]=cpu_crit_temp[i]-30
cpu_min_temp[$i]=1000
cpu_max_temp[$i]=0
فاي
منتهي
start_time=$(cat /proc/uptime | sed "s/[.].*$//") # وقت البدء
إذا [-ن "$1"]
ثم
script_pid = "$$"
(إذا ! $@ > "$0_out" 2>&1 # قم بتشغيل ملف الاختبار
ثم
kill -s SIGABRT $script_pid # يرسل إشارة إلى البرنامج النصي الرئيسي بأنه فشل في التشغيل
فاي 2>/dev/null)&
pid_test = "$!" # PID لعملية الاختبار
فاي
بينما (صحيح) # التحكم في درجة الحرارة
يفعل
ل ((i=0; i<$cpus_num; i++))
يفعل
cpu_freq[$i]=$(cat /sys/devices/system/cpu/cpu$(i)/cpufreq/scaling_cur_freq | sed "s/...$//")
cpu_temp[$i]=$(sensors | sed "/Core ""$i""/!d;s/.*+\(.*\)[.]°C[ \t]*(.*/\ 1/")
إذا [ -n "$(cpu_temp[i])" ]
ثم
(($(cpu_temp[i])< ${cpu_min_temp[i]})) && cpu_min_temp[$i]=${cpu_temp[i]}
إذا (($(cpu_temp[i]) > $(cpu_max_temp[i])))
ثم
cpu_max_temp[$i]=$(cpu_temp[i])
time_max[$i]=$(cat /proc/uptime | sed "s/[.].*$//")
دع time_max[i]=time_max[i]-start_time
فاي
إذا (($(cpu_temp[i]) > $(cpu_red_temp[i])))
ثم
صدى -en "وحدة المعالجة المركزية $(i):\t"
صدى -en "\033) "
صدى -en "\033)"
صدى -en "\033)"
echo -en "\033) > $(cpu_yel_temp[i])))
ثم
صدى -en "وحدة المعالجة المركزية $(i):\t"
صدى -en "\033) "
صدى -en "\033)"
صدى -en "\033) درجة مئوية؛ الحد الأقصى: "
صدى -en "\033)"
صدى -en "\033) ثانية) "
آخر
صدى -en "وحدة المعالجة المركزية $(i):\t"
صدى -en "\033) "
صدى -en "\033)"
صدى -en "\033) درجة مئوية؛ الحد الأقصى: "
صدى -en "\033)"
صدى -en "\033) ثانية) "
فاي
آخر
صدى -en "وحدة المعالجة المركزية $(i):\t"
صدى -en "\033) "
صدى -en "\033 .*$//")
دع الوقت=time-start_time
صدى -ar "الوقت:\t$time sec."
[ ! -d "/proc/$(pid_test)" ] && Break # خروج في نهاية الاختبار ( أفضل طريقةالتحكم عبر comm وcmdline، ولكن... كسول جدًا)
[ "$out" != "0" ] &&break #exit إذا فشل الاختبار
echo -en "\033[$(i)A\r" 1>&2 # حرك المؤشر لأعلى أسطر $i وإلى بداية السطر
Sleep 0.1 # Pause حتى لا يقفز خرج الترددات كثيرًا
منتهي
صدى صوت ""
echo -en "\033[?25h" 1>&2 # تمكين المؤشر
إذا [[ "$out" == "0" && -n "$1" ]]
ثم

جمهورية مقدونيا -fR "$0_out"
خروج 0
إليف [[ "$out" == "1" && -n "$1" ]]
ثم
kill -9 "$pid_test" 1>/dev/null 2>/dev/null
القطة "$0_out" | sed "/^$/d;/نموذج البيانات/d;/تردد وحدة المعالجة المركزية/d;/تم تعيين المعلمات/,/قيمة محاذاة البيانات/d"
جمهورية مقدونيا -fR "$0_out"
خروج 1
إليف [ "$out" == "1" ]
ثم الخروج 1
إليف [ "$out" == "2" ]
ثم
صدى -en "\033)