стрес тест памет в linux. Софтуерно ръководство: Полезни помощни програми за овърклок и др

стрес тест памет в linux.  Софтуерно ръководство: Полезни помощни програми за овърклок и др
стрес тест памет в linux. Софтуерно ръководство: Полезни помощни програми за овърклок и др

Защо си струва да направите стрес тест на процесора? За да тествате надеждността и стабилността на вашата машина/система. Провеждането на стрес тест също ще ви помогне да разберете дали трябва да надстроите или да добавите ново охлаждане към вашата машина. В моята тема „Cpu стрес тест на Linux (Debian/Ubuntu/Mint или RedHat/CentOS/Fedora)“ ще ви кажа как да използвате помощната програма cpuburn, за да тествате натоварването на процесора(ите).

cpuburn инсталация.

Инсталирайте cpuburn на /Debian/Ubuntu/Mint:

# apt-get актуализация && apt-get инсталирайте cpuburn

Инсталиране на cpuburn на RedHat/CentOS/Fedora:

# yum актуализация && yum инсталирайте cpuburn

Можете да видите ръководството за използване на помощната програма cpubun, като стартирате:

#man cpuburn

cpuburn, burnBX, burnK6, burnK7, burnMMX, burnP5, burnP6- колекция от програми за тестване на голямо натоварване на процесора.

изгарянеP5оптимизиран за Процесори на Intel Pentium с/без MMX.
изгарянеP6оптимизиран за процесори Intel PentiumPro, Pentium II & III.
изгарянеK6оптимизиран за процесори AMD K6.
изгарянеK7оптимизиран за процесори AMD Athlon/Duron.
burnMMX tests алтернативен тест за кеш/памет на всички процесори с MMX.
burnBXАлтернативният тест за кеш/памет е оптимизиран за процесори Intel.

Тези програми са предназначени да натоварват процесорите x86 колкото е възможно повече за целите на системното тестване. Те са оптимизирани за различни процесори. FPU и ALU инструкциите се кодират в асемблер в безкраен цикъл. Те не тестват всички инструкции. Целта е да създадете натоварване и да видите каква температура създава, като натоварите самия процесор, системата, дънна платкаи захранване.

Инструментът за тестване е предназначен да повреди компютъра ви, така че се уверете, че нищо критично не работи на него и всички важни данни са архивирани на вашите твърди дискове. Най-добре е да стартирате програмата на файлови системии монтирайте само за четене. Имайте предвид, че правата на root не са необходими.

Бягай желаната програмавъв фонов режим, проверявайки резултата от грешката. Можете да повторите тази команда за всеки процесор. Например,

# изгарянеP6 || ехо $? и

За да наблюдавате напредъка на CPUBurn, използвайте ps. Можете да наблюдавате температурата на процесора и/или системното напрежение чрез ACPI или LM сензори, но само ако вашата система го поддържа. След завършване си струва да прекратите този (e) процес, например:

# killall burnP6

Инсталирайте htop, за да наблюдавате натоварването на вашия сървър.

# apt-get актуализация && apt-get install htop

# yum актуализация && yum инсталирайте htop

Нека стартираме htop, за да проверим натоварването:

Стрес тестът на процесора на Linux (Debian/Ubuntu/Mint или RedHat/CentOS/Fedora) е завършен.

Защо си струва да направите стрес тест на процесора? За да тествате надеждността и стабилността на вашата машина/система. Провеждането на стрес тест също ще ви помогне да разберете дали трябва да надстроите или да добавите ново охлаждане към вашата машина. В моята тема „Cpu стрес тест на Linux (Debian/Ubuntu/Mint или RedHat/CentOS/Fedora)“ ще ви кажа как да използвате помощната програма cpuburn, за да тествате натоварването на процесора(ите).

1. Инсталирайте CPUburn.

Инсталирайте cpuburn на /Debian/Ubuntu/Mint:

  • # apt-get актуализация && apt-get инсталирайте cpuburn

Инсталиране на cpuburn на RedHat/CentOS/Fedora:

  • # yum актуализация && yum инсталирайте cpuburn

Можете да видите ръководството за използване на помощната програма cpubun, като стартирате:

    #man cpuburn

изгарянеP5оптимизиран за процесори Intel Pentium с/без MMX.cpuburn, burnBX, burnK6, burnK7, burnMMX, burnP5, burnP6- колекция от програми за тестване на голямо натоварване на процесора.

изгарянеP6оптимизиран за процесори Intel PentiumPro, Pentium II & III.
изгарянеK6оптимизиран за процесори AMD K6.
изгарянеK7оптимизиран за процесори AMD Athlon/Duron.
burnMMX tests алтернативен тест за кеш/памет на всички процесори с MMX.
burnBXАлтернативният тест за кеш/памет е оптимизиран за процесори Intel.

Тези програми са предназначени да натоварват процесорите x86 колкото е възможно повече за целите на системното тестване. Те са оптимизирани за различни процесори. FPU и ALU инструкциите се кодират в асемблер в безкраен цикъл. Те не тестват всички инструкции. Целта е да създадете натоварване и да видите каква температура създава това, като натоварите самия процесор, системата, дънната платка и захранването.

Инструментът за тестване е предназначен да срине компютъра ви, така че се уверете, че нищо критично не работи на него и всички важни данни са архивирани на вашите твърди дискове. Най-добре е да стартирате програмата на файлови системи и да монтирате като само за четене. Имайте предвид, че правата на root не са необходими.

Стартирайте желаната програма във фонов режим, като проверите резултата от грешката. Можете да повторите тази команда за всеки процесор. Например,

  • # изгарянеP6 || ехо $? и

За да наблюдавате напредъка на CPUBurn, използвайте ps. Можете да наблюдавате температурата на процесора и/или системното напрежение чрез ACPI или LM сензори, но само ако вашата система го поддържа. След завършване си струва да прекратите този (e) процес, например:

  • # killall burnP6

Инсталирайте htop, за да наблюдавате натоварването на вашия сървър.

  • # apt-get актуализация && apt-get install htop
  • # yum актуализация && yum инсталирайте htop

Нека стартираме htop, за да проверим натоварването:

  • #htop

Стрес тестът на процесора на Linux (Debian/Ubuntu/Mint или RedHat/CentOS/Fedora) е завършен.

помощна програма iperf. На единия компютър се стартира сървърът (с командата iperf -s), а на другия - клиентът (с командата iperf -c server_ip). Има версии както за Windows, така и за Linux (sudo apt-get install iperf). За съжаление не можах да използвам повече от 130Mb / s с един клиент, така че можете да стартирате няколко клиента, дори по-добре на няколко машини.

Загряване на процесора

помощна програма cpuburn (sudo apt-get install cpuburn). Стартира се от командата burnP5 (има версии, изострени под различни процесори- версия P5 е доста подходяща за Intel Atom). Зарежда процесора на 100%, ви позволява да проверите ефективността на охлаждането и надеждността на захранващите вериги при пикови натоварвания. Такива стрес тестове трябва да се извършват под контрола на температурата на процесора и другите компоненти - например, процесорът може да се охлади добре, но дори малък радиатор не е инсталиран на захранващата верига. При голямо натоварване процесорът консумира много ток и захранващата система може да прегрее (нейната ефективност не е равна на 100%).

дисков тест

sudo apt-get инсталирайте hdparm

sudo hdparm -tT /dev/sda

Очевидно е желателно да ги стартирате с минимална дискова активност и не се доверявайте на едно стартиране - направете поне три теста.

Много е полезно да стартирате всички тези тестове след надграждане на захранващата система и преди да скриете сървъра на далечния рафт.

Преглеждания на публикация: 152

Пуснах теста на Linpack и си помислих: време ли е да сменя термопастата на моя лаптоп?

Да, според резултатите от няколко поредни теста (няма да затрупвам статията със снимки) е ясно, че процесорът преминава в throttling (прескачане на цикли и нулиране на честотата при нагряване), но колко бързо започва правя това?

CPU стрес тест в Linux терминал

След като зададох този въпрос и потърсих в интернет помощни програми, разбрах, че основният проблем при решаването на поставената от мен задача е едновременното стартиране на поне няколко помощни програми и широко отворени очи в два прозореца ... И стигнах до извода, че конзолната версия е по-подходяща за мен, отколкото многоцветни прозорци на отворени програми.

Започнах с sysbench:

sudo apt инсталирайте sysbench

sysbench --num-threads=4 --test=cpu --cpu-max-prime=100000 изпълнение

  • --брой-нишки=4- това е броят на нишките, имам двуядрен четиринишков Intel® Core ™ i7-640M, така че 4;
  • --cpu-max-prime=100000- това е максималният брой извършени операции, зададох го на 100 000, защото по подразбиране е 10 000, приключвайки теста твърде рано.

След това преминах към Linpack. Тъй като имам процесор от Intel и имам известна доза мързел (мързелът е двигателят на прогреса), взех, изтеглих и разопаковах готовия Intel Linpack, след като създадох директорията linpack в моята домашна директория:

mkdir ./linpack
cd ./linpack
wget http://registrationcenter-download.intel.com/akdlm/irc_nas/9752/l_mklb_p_2018.3.011.tgz
tar -xvzf ./l_mklb_p_2018.3.011.tgz

За AMD процесориНе бих опитал тази опция, тъй като компилаторът на 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, и ми харесва повече функционалност, особено когато го стартирате като root - променя цвета си на червено. И така, създаваме в същата директория, в която сме се преместили, файл, например my_test:

И копирайте следното съдържание в създадения файл:

Версия със споделена памет на Intel(R) Distribution за LINPACK* Benchmark. *Други имена и марки могат да бъдат заявени като собственост на други.
Примерен файл с данни lininput_xeon64.
5 # брой тестове
1000 2000 5000 10000 20000 # проблемни размери
1000 2000 5008 10000 20000 # водещи размери
4 2 2 2 1 # пъти, за да стартирате тест
4 4 4 4 4 # стойности на подравняване (в KBytes)

Е, всъщност стартиране на Linpack със създадения файл:

./xlinpack_xeon64 -i ./my_test

./xlinpack_xeon64 ./my_test

Можете също така да използвате stress-ng или stress, но това все още не решава проблема, който поставих. Тези помощни програми не ми показват изхода за температура, честоти и време от самото начало.

Температурата може да се показва от сензори - повече за инсталирането на тази помощна програма. И тази помощна програма ще е необходима при по-нататъшното разглеждане на моя въпрос. Linux е страхотен и мощен: една и съща задача може да бъде решена по различни начини. Бях твърде мързелив да взема C и написах липсващата част вместо мен в BASH, защото нямаше толкова много редове. Без инсталирани сензори моят скрипт няма да работи. Естествено, не написах фиксирането на дроселирането - така или иначе ще се вижда чрез нулиране на честотата и температурата. Ето и самия скрипт:

#!/bin/bash
out=0 # контролна променлива на процеса на тестване
pid_test="tty" # PID на тестовия процес (направи съществуваща директория да се изпълнява без аргументи)
cpus_num=$(cat /proc/cpuinfo | grep -ci "процесор") # брой процесори/ядра/нишки
echo -en "\033[?25l" 1>&2 # скриване на курсора
echo -en "\033[^:]*: //g" | sort -u # модел на изходен процесор
echo -en "\033=$(сензори | sed "/Core ""$i""/!d;s/.*crit = +\(.*\)[.]°C).*/\1/ ")
if [ -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/[.] .*$//") # начален час
if [ -n "$1" ]
тогава
script_pid="$$"
(ако ! $@ > "$0_out" 2>&1 # изпълнете тестов файл
тогава
kill -s SIGABRT $script_pid # сигнализира, че основният скрипт не може да се изпълни
fi 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]=$(сензори | sed "/Core ""$i""/!d;s/.*+\(.*\)[.]°C[ \t]*(.*/\ 1/")
if [ -n "$(cpu_temp[i])" ]
тогава
(($(cpu_temp[i])< ${cpu_min_temp[i]})) && cpu_min_temp[$i]=${cpu_temp[i]}
if (($(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]-начално_време
фи
if (($(cpu_temp[i]) > $(cpu_red_temp[i])))
тогава
echo -en "cpu$(i):\t"
echo -en "\033)"
echo -en "\033)"
echo -en "\033)"
echo -en "\033) > $(cpu_yel_temp[i])))
тогава
echo -en "cpu$(i):\t"
echo -en "\033)"
echo -en "\033)"
echo -en "\033)°C; макс.: "
echo -en "\033)"
echo -en "\033)сек)"
друго
echo -en "cpu$(i):\t"
echo -en "\033)"
echo -en "\033)"
echo -en "\033)°C; макс.: "
echo -en "\033)"
echo -en "\033)сек)"
фи
друго
echo -en "cpu$(i):\t"
echo -en "\033)"
echo -en "\033 .*$//")
нека време=време-начално_време
echo -en "Време:\t$time сек."
[! -d "/proc/$(pid_test)" ] && break # изход, когато тестът приключи ( По най-добрия начинуправление чрез comm и cmdline, но... твърде мързеливо)
[ "$out" != "0" ] && break # излизане при неуспешен тест
echo -en "\033[$(i)A\r" 1>&2 # преместете курсора нагоре $i реда и до началото на реда
sleep 0.1 # пауза, така че изходната честота да не скача много
Свършен
ехо ""
echo -en "\033[?25h" 1>&2 # активиране на курсора
if [[ "$out" == "0" && -n "$1" ]]
тогава

rm -fR "$0_out"
изход 0
elif [[ "$out" == "1" && -n "$1" ]]
тогава
убиване -9 "$pid_test" 1>/dev/null 2>/dev/null
котка "$0_out" | sed "/^$/d;/Примерни данни/d;/Честота на процесора/d;/Параметрите са зададени/,/Стойност за подравняване на данни/d"
rm -fR "$0_out"
изход 1
elif[ "$out" == "1" ]
след това излезте 1
elif[ "$out" == "2" ]
тогава
echo -en "\033)