Je suis actuellement en train de déboguer une installation Cacti et je souhaite créer une charge de processeur pour déboguer mes graphiques d'utilisation du processeur.
J'ai simplement essayé de courir cat /dev/zero > /dev/null
, ce qui fonctionne très bien mais n'utilise qu'un seul noyau:
Existe-t-il une meilleure méthode de test / utilisation maximale des ressources système sous charge?
Connexe: Comment puis-je générer une charge de processeur élevée sous Windows?
performance
debian
benchmarking
Der Hochstapler
la source
la source
cat
simultanément?screen
sessions. Mais je préférerais une solution plus sophistiquée si possible.cat /dev/random > /dev/null
. Devinez/dev/zero
fonctionne aussi. :-)Réponses:
Essayez
stress
c'est à peu près l'équivalent de Windowsconsume.exe
:la source
sudo apt-get install stress
sudo yum install stress
sudo pacman -S stress
brew install stress
sur OS XNul 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%:
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. -à- pasdash
ou plusksh
), vous pouvez utiliser cette syntaxe non portable:Remplacez-le
4
par le nombre de CPU que vous souhaitez charger si différent de4
.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:
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
etksh
.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). .
la source
&
provoque une commande à exécuter dans un thread séparé ou un noyau séparé ? Je suis confus.killall bash
- assurez-vous simplement qu'aucun autre script important n'est en cours d'exécution à ce moment-là.killall bash
. Répondez modifié pour ajouter une méthode plus sûre pour mettre fin à la génération de charge.J'ai fait un script python simple qui fait la même chose. Vous pouvez contrôler le nombre de cœurs de processeur que vous souhaitez charger. La bonne chose à ce propos est qu’elle ne consommera aucune autre ressource que le processeur. (Je pense que l’idée de mark johnson consomme beaucoup de ressources d’E / S, ce qui n’est pas souhaitable ici.)
Il suffit de lancer ce script depuis le terminal
$ python temp1.py
. Vous devez tuer le script lorsque vous avez terminé.Ici, c’est ma sortie de consommation de CPU lorsque je charge 3 de mes cœurs.
la source
Une autre solution serait
ou (si nproc est présent)
OpenSSL est presque toujours présent sur les distributions actuelles, donc aucun paquet supplémentaire n'est nécessaire.
la source
Commencer deux
commandes pour chaque cœur de votre système.
Arrêter
ou
la source
Je prends habituellement la suite cpuburn:
Remplacez 4 par le nombre de cœurs / fils HT que vous avez ou voulez stresser.
Remarque: Cela sollicite autant que possible la zone de copeaux en même temps. Il est programmé pour générer une dissipation de puissance maximale. J'ai dû écrire ce billet une seconde fois, ma machine ne l'aimait pas du tout :-(
Vous pouvez aussi faire cpuburn en séquences:
Et quand vous voulez les arrêter:
Vous pouvez également multiplier
burnP6 &
pour correspondre au nombre de cœurs de processeur de votre système.la source
J'ai développé stress-ng, un outil de stress mis à jour qui peut mettre en évidence un large éventail d'aspects d'un système Linux. Pour plus d'informations, voir http://kernel.ubuntu.com/~cking/stress-ng/
L'utilisation est similaire au stress
Installer avec
la source
Vous pouvez exécuter cette commande autant de fois que vous le souhaitez, et cela nécessitera un noyau différent à chaque fois:
la source
killall cat
devrait le faire.cat
processus en cours d'exécution (ce que je fais habituellement).https://github.com/GaetanoCarlucci/CPULoadGenerator
solution assez simple et scientifique.
Vous pouvez voir ici un exemple de dynamique dans laquelle 50% de la charge est générée sur le cœur de processeur 0:
Vous pouvez exécuter le processus sur d'autres cœurs en même temps.
la source
J'ai combiné les deux + jlliagre et + ecabuk.
la source
Vous pouvez utiliser:
Répétez l'opération
dd if=/dev/zero of=/dev/null
pour vos cœurs de processeur.Appuyez sur une touche pour arrêter le test.
la source
pxz
est une implémentation parallèle dexz
.pxz -9e /dev/zero --stdout >/dev/null
devrait faire l'affaire, car c'est assez intensif en cpu.Si
/dev/zero
n’est pas assez rapide (vous remarquez que l’pxz
E / S est étranglé), vous pouvez le faire.pxz -9e /dev/zero --stdout | pxz -9e --stdout >/dev/null
Les nouvelles versions de
xz
ont l'--threads
option qui se substitue àpxz
.la source
Voici comment je l'utilise et il n'y a pas besoin d'installer quoi que ce soit d'autre.
Par exemple, pour commencer avec 4 processus,
Vous pouvez modifier le nombre de processus à l'aide de l'option "-P" ci-dessus.
la source
Une simple ligne de commande le fait aussi:
la source
while : ; do : ; done
for i in 1 2 3; do while : ; do : ; done & ; done
Je voulais ajouter ceci au commentaire de @ jlliagre, mais je n'ai pas assez de réputation. Si vous utilisez ce code sur plusieurs serveurs et que le nombre de processeurs varie, vous pouvez utiliser la commande suivante:
Cela utilisera tous les cœurs de votre serveur, quel que soit le nombre de vos cœurs. La commande
nproc
fait partie de coreutils et devrait donc l'être sur la plupart des installations Linux.la source