Nul besoin d'installer un paquet supplémentaire, votre bon vieux shell est capable de le faire seul.
Ce one-liner chargera vos quatre noyaux 1 à 100%:
for i in 1 2 3 4; do while : ; do : ; done & done
Comment ça marche est assez simple, il commence quatre boucles sans fin. Chacun d'eux répète l'instruction null ( :
). Chaque boucle est capable de charger un cœur de processeur à 100%.
Si vous utilisez bash
, ksh93
et d' autres coquilles supportant des gammes, (c. -à- pas dash
ou plus ksh
), vous pouvez utiliser cette syntaxe non portable:
for i in {1..4}; do ...
Remplacez-le 4
par le nombre de CPU que vous souhaitez charger si différent de 4
.
En supposant qu'aucune tâche en arrière-plan ne soit en cours d'exécution lorsque vous avez lancé l'une de ces boucles, vous pouvez arrêter la génération de charge à l'aide de cette commande:
for i in 1 2 3 4; do kill %$i; done
Répondant au commentaire de @ underscore_d, voici une version améliorée qui simplifie beaucoup l'arrêt du chargement et qui permet également de spécifier un délai d'attente (60 secondes par défaut). A Control- Csupprimera également toutes les boucles en fuite. Cette fonction shell fonctionne au moins sous bash
et 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 Notez qu'avec les processeurs prenant en charge plusieurs threads par cœur (Hyper-threading), le système d'exploitation distribue la charge à tous les processeurs virtuels. Dans ce cas, le comportement de la charge dépend de la mise en œuvre (chaque thread peut être signalé comme étant occupé à 100% ou non). .
cat
simultanément?