Sie brauchen kein zusätzliches Paket zu installieren, Ihre gute alte Shell ist in der Lage, dies alleine zu tun.
Dieser One-Liner lädt Ihre vier Kerne 1 zu 100%:
for i in 1 2 3 4; do while : ; do : ; done & done
Wie es funktioniert ist ganz einfach, es werden vier Endlosschleifen gestartet. Jeder von ihnen wiederholt die Null-Anweisung ( :
). Jede Schleife kann einen CPU-Kern zu 100% laden.
Wenn Sie verwenden bash
, ksh93
und andere Schalen Bereiche unterstützen, (dh nicht dash
oder älter ksh
), können Sie diese nicht tragbar Syntax verwenden:
for i in {1..4}; do ...
Ersetzen Sie diese 4
durch die Anzahl der CPUs, die Sie laden möchten, falls diese von abweichen 4
.
Angenommen, Sie hatten bereits keinen Hintergrundjob ausgeführt, als Sie eine dieser Schleifen gestartet haben, können Sie die Ladegenerierung mit dem folgenden Befehl stoppen:
for i in 1 2 3 4; do kill %$i; done
Beantwortet man den Kommentar von @ underscore_d, so handelt es sich um eine verbesserte Version, die das Stoppen des Ladevorgangs erheblich vereinfacht und die Angabe einer Zeitüberschreitung (Standard 60 Sekunden) ermöglicht. A Control- CBringt auch alle außer Kontrolle. Diese Shell-Funktion funktioniert mindestens unter bash
und ksh
.
# Usage: lc [number_of_cpus_to_load [number_of_seconds] ]
lc() {
(
pids=""
cpus=${1:-1}
seconds=${2:-60}
echo loading $cpus CPUs for $seconds seconds
trap 'for p in $pids; do kill $p; done' 0
for ((i=0;i<cpus;i++)); do while : ; do : ; done & pids="$pids $!"; done
sleep $seconds
)
}
1 Beachten Sie, dass bei CPUs, die mehr als einen Thread pro Kern unterstützen (Hyper-Threading), das Betriebssystem die Last an alle virtuellen CPUs verteilt. In diesem Fall ist das Ladeverhalten von der Implementierung abhängig (jeder Thread wird möglicherweise als zu 100% ausgelastet gemeldet oder nicht). .
cat
gleichzeitig auszuführen ?