CPU-Stresser
von heinz- SNIPPET_DESC:
- CPUs auslasten mittels bc
- SNIPPET_CREATION_TIME:
- 23.01.2020 12:59:31
- SNIPPET_PRUNE_TIME:
- Unendlich
- SNIPPET_TEXT:
-
- #!/bin/bash
- #
- # CPU-Stresser
- #
- # Script um jeden Kern des Prozessors unter vollast laufen zu lassen.
- #
- #
- # Konfiguration
- # Anzahl der Prozessorkerne oder leer lassen fuer autoerkennung.
- kernmenge=
- # Angabe, wieviele nachkommastellen von PI berechnet werden sollen.
- # Erhoehen Sie diesen Wert um die Rechen-/Laufzeit zu verlaengern
- rechendauer=100000000
- # Funktionen -------------------------------------------------------------------
- function Stress_an # ($1=kernmenge leer=alle)
- {
- # Stressprozesse pause aus
- for kern in `seq 0 $((${1:-$kernmenge}-1))`
- do
- if test -n "${pids[$kern]}"
- then
- kill -sigcont ${pids[$kern]}
- else
- break
- fi
- done
- }
- function Stress_aus # ($1=kernmenge)
- {
- # Stressprozesse pause an
- for kern in `seq 0 $((${1:-$kernmenge}-1))`
- do
- if test -n "${pids[$kern]}"
- then
- kill -sigstop ${pids[$kern]}
- else
- break
- fi
- done
- }
- function Ende
- {
- echo -e '\n'
- # Stressprozesse beenden
- for kern in `seq 0 $(($kernmenge-1))`
- do
- kill ${pids[$kern]}
- echo "-$kern- Stresser beendet. PID=${pids[$kern]}"
- done
- echo -e "\nFertig.\n"
- exit
- }
- # Hauptteil ####################################################################
- # [strg]+c und 'Fenster schliessen Knopf' abfangen (Um noch die Stressprozesse zu killen)
- trap 'Ende' 1 2 3 15
- # Automatische ermittlung der Kernmenge
- kernmenge=${kernmenge:-`grep -ce 'processor' /proc/cpuinfo`}
- echo -e "\nCPU-Stresser: ($kernmenge Kerne)\n"
- # Stressprozesse starten
- for kern in `seq 0 $(($kernmenge-1))`
- do
- bc -l <<<"scale=$rechendauer; 4*a(1)" >/dev/null &
- pids[$kern]=$!
- echo "-$kern- Stresser gerstartet. PID=${pids[$kern]}"
- done
- Stress_aus
- echo
- # Hauptschleife
- while true
- do
- read -sn1 -p "Wieviele Stresser sollen laufen? [0 - $kernmenge] (q=ende) "
- test "$REPLY" == 'q' && break
- menge=`tr -d '[:alpha:][:space:][:punct:][:cntrl:]' <<<$REPLY`
- test ${menge:-0} -gt $kernmenge && menge=$kernmenge
- test ${menge:-0} -eq 0 && farbe='\033[0;32;40m' || farbe='\033[1;31;40m'
- echo -ne " $farbe${menge:-0}\033[0m \r"
- Stress_aus
- test ${menge:-0} -gt 0 && Stress_an $menge
- done
- Ende
Quellcode
Hier kannst du den Code kopieren und ihn in deinen bevorzugten Editor einfügen. PASTEBIN_DOWNLOAD_SNIPPET_EXPLAIN