Linux minne stresstest. Programvaruguide: Användbara verktyg för överklockning och mer

Linux minne stresstest.  Programvaruguide: Användbara verktyg för överklockning och mer
Linux minne stresstest. Programvaruguide: Användbara verktyg för överklockning och mer

Varför är det värt att utföra ett CPU-stresstest? För att testa tillförlitligheten och stabiliteten hos din maskin/system. Att köra ett stresstest kan också hjälpa dig att veta om du behöver uppgradera eller lägga till ny kylning till din maskin. I mitt ämne "CPU Stress Test på Linux (Debian/Ubuntu/Mint eller RedHat/CentOS/Fedora)" kommer jag att berätta hur du använder verktyget cpuburn för att testa belastningen på processorn/processorerna.

Installerar CPUburn.

Installera cpuburn på /Debian/Ubuntu/Mint:

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

Installera cpuburn på RedHat/CentOS/Fedora:

# yum uppdatering && yum installera cpuburn

Du kan se bruksanvisningen för cpubun-verktyget genom att köra:

# man cpuburn

cpuburn, burnBX, burnK6, burnK7, burnMMX, burnP5, burnP6— en samling program för att testa tung belastning på processorn.

bränna P5 optimerad för Intel-processorer Pentium med/utan MMX.
bränna P6 optimerad för Intel PentiumPro, Pentium II och III-processorer.
brännaK6 optimerad för AMD K6-processorer.
brännaK7 optimerad för AMD Athlon/Duron-processorer.
bränn MMX testar alternativt cache/minnestest på alla processorer med MMX.
burnBX Alternativt cache-/minnestest optimerat för Intel-processorer.

Dessa program är utformade för att ladda x86-processorer så mycket som möjligt för systemteständamål. De har optimerats för olika processorer. FPU- och ALU-instruktioner är kodade i assemblerspråk i en oändlig slinga. De testar inte alla instruktioner. Målet är att skapa en belastning och se vilken temperatur som skapas genom att belasta själva processorn, systemet, moderkort och strömförsörjning.

Testverktyget är utformat för att krascha din dator, så se till att inget kritiskt körs på den och att all viktig data säkerhetskopieras på dina hårddiskar. Det är bäst att köra programmet på filsystem och gör det skrivskyddat. Observera att root-privilegier inte krävs.

Springa önskat program i bakgrunden, kontrollerar felresultatet. Du kan upprepa detta kommando för varje processor. Till exempel,

#burnP6 || echo $? &

För att övervaka framstegen för CPUBurn, använd ps. Du kan övervaka CPU-temperatur och/eller systemspänning via ACPI eller använda LM-sensorer så länge som ditt system stödjer det. Efter slutförandet är det värt att avsluta de givna processerna, till exempel:

#killallburnP6

Installera htop för att övervaka belastningen på din server.

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

# yum uppdatering && yum installera htop

Låt oss köra htop för att kontrollera belastningen:

CPU-stresstest på Linux (Debian/Ubuntu/Mint eller RedHat/CentOS/Fedora) har slutförts.

Varför är det värt att utföra ett CPU-stresstest? För att testa tillförlitligheten och stabiliteten hos din maskin/system. Att köra ett stresstest kan också hjälpa dig att veta om du behöver uppgradera eller lägga till ny kylning till din maskin. I mitt ämne "CPU Stress Test på Linux (Debian/Ubuntu/Mint eller RedHat/CentOS/Fedora)" kommer jag att berätta hur du använder verktyget cpuburn för att testa belastningen på processorn/processorerna.

1. Installera CPUburn.

Installera cpuburn på /Debian/Ubuntu/Mint:

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

Installera cpuburn på RedHat/CentOS/Fedora:

  • # yum uppdatering && yum installera cpuburn

Du kan se bruksanvisningen för cpubun-verktyget genom att köra:

    # man cpuburn

bränna P5optimerad för Intel Pentium-processorer med/utan MMX.cpuburn, burnBX, burnK6, burnK7, burnMMX, burnP5, burnP6- en samling program för att testa tung belastning på CPU.

bränna P6 optimerad för Intel PentiumPro, Pentium II och III-processorer.
brännaK6 optimerad för AMD K6-processorer.
brännaK7 optimerad för AMD Athlon/Duron-processorer.
bränn MMX testar alternativt cache/minnestest på alla processorer med MMX.
burnBX Alternativt cache-/minnestest optimerat för Intel-processorer.

Dessa program är utformade för att ladda x86-processorer så mycket som möjligt för systemteständamål. De har optimerats för olika processorer. FPU- och ALU-instruktioner är kodade i assemblerspråk i en oändlig slinga. De testar inte alla instruktioner. Målet är att skapa en belastning och se vilken temperatur som skapas genom att lägga en belastning på själva processorn, systemet, moderkortet och strömförsörjningen.

Testverktyget är utformat för att krascha din dator, så se till att inget kritiskt körs på den och att all viktig data säkerhetskopieras på dina hårddiskar. Det är bäst att köra programmet på filsystem och montera dem skrivskyddat. Observera att root-privilegier inte krävs.

Kör önskat program i bakgrunden och kontrollera felresultatet. Du kan upprepa detta kommando för varje processor. Till exempel,

  • #burnP6 || echo $? &

För att övervaka framstegen för CPUBurn, använd ps. Du kan övervaka CPU-temperatur och/eller systemspänning via ACPI eller använda LM-sensorer så länge som ditt system stödjer det. Efter slutförandet är det värt att avsluta de givna processerna, till exempel:

  • #killallburnP6

Installera htop för att övervaka belastningen på din server.

  • # apt-get update && apt-get install htop
  • # yum uppdatering && yum installera htop

Låt oss köra htop för att kontrollera belastningen:

  • #htop

CPU-stresstest på Linux (Debian/Ubuntu/Mint eller RedHat/CentOS/Fedora) har slutförts.

iperf verktyg. På en dator startas servern (med kommandot iperf -s), på den andra - klienten (med kommandot iperf -c server_ip). Det finns versioner för både Windows och Linux (sudo apt-get install iperf). Tyvärr kunde jag inte utnyttja mer än 130Mb/s med en klient, så du kan köra flera klienter, helst även på flera maskiner.

Värmer upp processorn

cpuburn-verktyget (sudo apt-get install cpuburn). Startas med kommandot burnP5 (det finns versioner som är skräddarsydda för olika processorer- version P5 är ganska lämplig för Intel Atom). Laddar processorn 100%, låter dig kontrollera kylningseffektiviteten och tillförlitligheten hos strömkretsar under toppbelastningar. Sådana stresstester måste utföras under kontroll av temperaturen på processorn och andra komponenter - till exempel kan processorn kylas väl, men inte ens en liten radiator installerades på strömkretsen. Under hög belastning förbrukar processorn mycket ström, och kraftsystemet kan överhettas (dess effektivitet är inte 100%).

Disktest

sudo apt-get installera hdparm

sudo hdparm -tT /dev/sda

Uppenbarligen är det tillrådligt att köra dem, för att säkerställa ett minimum av diskaktivitet, och lita inte på en körning - gör minst tre tester.

Det är mycket användbart att köra alla dessa tester efter att ha uppgraderat kraftsystemet och innan du gömmer servern på en avlägsen hylla.

Visningar av inlägg: 152

Jag körde Linpack-testet och undrade: är det inte dags för mig att byta termisk pasta på min bärbara dator?

Ja, baserat på resultaten från flera tester i rad (jag kommer inte att belamra artikeln med bilder) är det tydligt att processorn går in i gaspådrag (hoppar över klockcykler och återställer frekvensen vid uppvärmning), men hur snabbt går det börja göra detta?

CPU-stresstest i Linux-terminal

Efter att ha ställt den här frågan och sökt på Internet efter verktyg, insåg jag att huvudproblemet med att lösa det problem jag hade ställt in var den samtidiga lanseringen av åtminstone ett par verktyg och mina ögon rann vilt i två fönster... Och jag kom till slutsatsen att konsolalternativet är mer lämpligt för mig, snarare än färgglada fönster med öppna program.

Jag började med sysbench:

sudo apt installera sysbench

sysbench --num-threads=4 --test=cpu --cpu-max-prime=100000 körning

  • --antal-trådar=4- det här är antalet trådar, jag har en dubbelkärnig, fyrtrådig Intel® Core™ i7-640M, alltså 4;
  • --cpu-max-prime=100000- det här är det maximala antalet utförda operationer, jag ställer in det på 100 000, eftersom standard är 10 000, testet slutförs för snabbt.

Sedan bytte jag till Linpack. Eftersom min processor är från Intel och jag har ett visst mått av lättja (lathet är framstegsmotorn) tog, laddade ner och packade upp det färdiga Intel Linpack, efter att ha skapat en linpack-katalog i min hemkatalog:

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

För AMD-processorer Jag skulle inte prova det här alternativet, eftersom Intel-kompilatorn infogar bokmärken som kontrollerar processorn och om det inte är Intel... ja, tänk bara, processorn kommer att köra hundra eller två extra instruktioner och kommer uppenbarligen att förlora i prestanda. För AMD är det bättre att bygga Linpack från källor, till exempel från dessa. I den här artikeln kommer jag inte att överväga montering från källkod - läs README i källkoden.

Låt oss återgå till Intels Linpack. Det finns många onödiga saker där som jag inte behöver, men jag ska överväga vad jag behöver i förhållande till version 2018.3.011. Jag går omedelbart till önskad katalog så att jag inte behöver skriva långa kommandon senare:

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

Eftersom Intels Linpack som standard är designat för att testa server Xeons, kommer vi att skapa vår egen fil som kommer att användas som inmatningsalternativ - vi kommer helt enkelt att minska antalet tester, annars kommer vi att tröttna på att vänta "ett par dagar" på testet att slutföra. Jag har Linux Mint LMDE 3 så jag använder textredigerare xed, och jag gillar det på grund av dess större funktionalitet, speciellt när du kör det som root - det ändrar färg till rött. Och så, skapa en fil i samma katalog som vi flyttade till, till exempel my_test:

Och kopiera följande innehåll till den skapade filen:

Delat minnesversion av Intel(R) Distribution för LINPACK* Benchmark. *Andra namn och varumärken kan göras anspråk på att vara andras egendom.
Exempeldatafil lininput_xeon64.
5 # antal tester
1000 2000 5000 10000 20000 # problemstorlekar
1000 2000 5008 10000 20000 # ledande dimensioner
4 2 2 2 1 # gånger för att köra ett test
4 4 4 4 4 # inriktningsvärden (i KBytes)

Tja, och faktiskt lanserar Linpack med den skapade filen:

./xlinpack_xeon64 -i ./my_test

./xlinpack_xeon64 ./my_test

Du kan också använda stress-ng eller stress, men detta löser fortfarande inte problemet jag ställt in. Dessa verktyg visar mig inte utdata för temperatur, frekvenser och tid från början.

Temperaturen kan visas av sensorer - läs mer om hur du installerar detta verktyg. Och det här verktyget kommer att behövas i den fortsatta behandlingen av min fråga. Linux är bra och kraftfullt: samma uppgift kan lösas på olika sätt. Jag var för lat för att ta mig an C, så jag skrev den saknade delen i BASH, för det fanns inte så många rader. Utan sensorer installerade kommer mitt skript inte att fungera. Naturligtvis skrev jag inte ner strypningsdetekteringen - den kommer redan att vara synlig från frekvensåterställningen och temperaturen. Här är själva manuset:

#!/bin/bash
ut=0 # testprocesskontrollvariabel
pid_test="tty" # PID för testprocessen (gjord av en befintlig katalog för att köras utan argument)
cpus_num=$(cat /proc/cpuinfo | grep -ci "processor") # antal processorer/kärnor/trådar
echo -en "\033[?25l" 1>&2 # dölj markören
echo -en "\033[^:]*: //g" | sort -u # utgångsprocessormodell
echo -en "\033=$(sensorer | sed "/Core ""$i""/!d;s/.*crit = +\(.*\)[.]°C).*/\1/ ")
if [ -n "$(cpu_crit_temp[i])" ]
sedan
låt cpu_red_temp[i]=cpu_crit_temp[i]-10
låt cpu_yel_temp[i]=cpu_crit_temp[i]-30
cpu_min_temp[$i]=1000
cpu_max_temp[$i]=0
fi
Gjort
start_time=$(cat /proc/uptime | sed "s/[.].*$//") # starttid
if [ -n "$1" ]
sedan
script_pid="$$"
(om ! $@ > "$0_out" 2>&1 # kör testfil
sedan
kill -s SIGABRT $script_pid # skicka en signal till huvudskriptet att det inte har kunnat köras
fi 2>/dev/null)&
pid_test="$!" # PID för testprocessen
fi
medan (sant) # temperaturkontroll
do
för ((i=0; i<$cpus_num; i++))
do
cpu_freq[$i]=$(cat /sys/devices/system/cpu/cpu$(i)/cpufreq/scaling_cur_freq | sed "s/...$//")
cpu_temp[$i]=$(sensorer | sed "/Core ""$i""/!d;s/.*+\(.*\)[.]°C[ \t]*(.*/\ 1/")
if [ -n "$(cpu_temp[i])" ]
sedan
(($(cpu_temp[i])< ${cpu_min_temp[i]})) && cpu_min_temp[$i]=${cpu_temp[i]}
if (($(cpu_temp[i]) > $(cpu_max_temp[i])))
sedan
cpu_max_temp[$i]=$(cpu_temp[i])
time_max[$i]=$(cat /proc/uptime | sed "s/[.].*$//")
låt time_max[i]=time_max[i]-start_time
fi
if (($(cpu_temp[i]) > $(cpu_red_temp[i])))
sedan
echo -en "cpu$(i):\t"
echo -en "\033) "
echo -en "\033)"
echo -en "\033)"
echo -en "\033) > $(cpu_yel_temp[i])))
sedan
echo -en "cpu$(i):\t"
echo -en "\033) "
echo -en "\033)"
echo -en "\033)°C; max: "
echo -en "\033)"
echo -en "\033)sek) "
annan
echo -en "cpu$(i):\t"
echo -en "\033) "
echo -en "\033)"
echo -en "\033)°C; max: "
echo -en "\033)"
echo -en "\033)sek) "
fi
annan
echo -en "cpu$(i):\t"
echo -en "\033) "
echo -en "\033 .*$//")
låt tid=tid-start_tid
echo -en "Tid:\t$tid sek."
[ ! -d "/proc/$(pid_test)" ] && break # avsluta i slutet av testet ( Det bästa sättet styr via comm och cmdline, men... för lat)
[ "$out" != "0" ] && break # avsluta om testet misslyckas
echo -en "\033[$(i)A\r" 1>&2 # flytta markören uppåt $i raderna och till början av raden
sömn 0,1 # paus så att utmatningen av frekvenser inte hoppar för mycket
Gjort
eka ""
echo -en "\033[?25h" 1>&2 # aktivera markören
om [[ "$out" == "0" && -n "$1" ]]
sedan

rm -fR "$0_out"
utgång 0
elif [[ "$out" == "1" && -n "$1" ]]
sedan
döda -9 "$pid_test" 1>/dev/null 2>/dev/null
katt "$0_out" | sed "/^$/d;/Sample data/d;/CPU-frekvens/d;/Parametrar är inställda/,/Datajusteringsvärde/d"
rm -fR "$0_out"
utgång 1
elif [ "$out" == "1" ]
gå sedan ur 1
elif [ "$out" == "2" ]
sedan
echo -en "\033)