Je veux créer une charge proche de 100% sur une machine Linux. C'est le système quad core et je veux que tous les cœurs soient à pleine vitesse. Idéalement, la charge du processeur devrait durer une durée déterminée, puis s’arrêter. J'espère qu'il y aura un tour dans le bash. Je pense à une sorte de boucle infinie.
Réponses
Trop de publicités?Vous pouvez aussi faire
dd if=/dev/zero of=/dev/null
Pour en exécuter davantage, mettez-en sur d'autres cœurs, essayez de le faire:
fulload() { dd if=/dev/zero of=/dev/null | dd if=/dev/zero of=/dev/null | dd if=/dev/zero of=/dev/null | dd if=/dev/zero of=/dev/null & }; fulload; read; killall dd
Répétez la commande dans les accolades autant de fois que le nombre de threads que vous souhaitez produire (ici 4 threads). Un simple clic sur le bouton va l'arrêter (assurez-vous simplement qu'aucun autre dd ne s'exécute sur cet utilisateur ou que vous le tuez aussi).
Je pense que c'est plus simple. Ouvrir un Terminal et tapez la commande suivante et appuyez sur Entrée.
yes > /dev/null &
Pour utiliser pleinement les Processeurs modernes, une ligne n'est pas suffisant, vous devrez peut-être répéter la commande pour épuiser toute la puissance du PROCESSEUR.
Pour mettre fin à tout cela, il suffit de mettre
killall yes
L'idée a été à l'origine trouvé ici, bien qu'il ait été prévu pour les utilisateurs de Mac, mais cela devrait fonctionner pour *nix.
Je diviserais la chose en 2 scripts:
infinite_loop.bash:
#!/bin/bash
while [ 1 ] ; do
# Force some computation even if it is useless to actually work the CPU
echo $((13**99)) 1>/dev/null 2>&1
done
cpu_spike.bash:
#!/bin/bash
# Either use environment variables for NUM_CPU and DURATION, or define them here
for i in `seq ${NUM_CPU}` : do
# Put an infinite loop on each CPU
infinite_loop.bash &
done
# Wait DURATION seconds then stop the loops and quit
sleep ${DURATION}
killall infinite_loop.bash