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, ksh93und andere Schalen Bereiche unterstützen, (dh nicht dashoder älter ksh), können Sie diese nicht tragbar Syntax verwenden:
for i in {1..4}; do ...
Ersetzen Sie diese 4durch 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 bashund 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). .
catgleichzeitig auszuführen ?