Je veux créer une charge proche de 100% sur une machine Linux. C'est un système quad core et je veux que tous les cœurs tournent à pleine vitesse. Idéalement, la charge du processeur durerait un certain temps, puis s'arrêterait. J'espère qu'il y a une astuce dans bash. Je pense à une sorte de boucle infinie.
281
Réponses:
Vous pouvez aussi faire
Pour en exécuter davantage pour charger davantage de cœurs, essayez de le bifurquer:
Répétez la commande entre accolades autant de fois que le nombre de fils que vous souhaitez produire (ici 4 fils). Une simple entrée va l'arrêter (assurez-vous simplement qu'aucun autre dd n'est en cours d'exécution sur cet utilisateur ou vous le tuez aussi).
la source
/dev/zero
et l'écriture/dev/null
ne sont pas un très bon générateur de charge - vous devez en exécuter beaucoup pour générer une charge importante. Mieux vaut faire quelque chose commedd if=/dev/urandom | bzip2 -9 >> /dev/null
./dev/urandom
nécessite beaucoup plus d'efforts pour générer la sortie, etbzip2
dépensera beaucoup d'efforts pour essayer de la compresser, donc l'utilisation globale du CPU est beaucoup plus élevée que "remplir un bloc de zéros, puis le jeter".jobs -p | xargs kill
pour tuer uniquement les processus que vous avez créés.J'utilise le stress pour ce genre de chose, vous pouvez lui dire combien de cœurs au maximum .. cela permet également de stresser la mémoire et le disque.
Exemple pour stresser 2 cœurs pendant 60 secondes
stress --cpu 2 --timeout 60
la source
sudo yum install stress
EPEL
repo pour CentOSwget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
brew
install stress
sous OS X. Aussi pour une raison quelconque, j'ai dû spécifier 8 cœurs sur un MBPr quad-coresudo apt-get install stress
sur les systèmes basés sur Debian, pour être complet. Utilisé pour tester un mod de refroidissement sur le kit Intel i7 NUC .Je pense que celui-ci est plus simple. Ouvrez Terminal et tapez ce qui suit et appuyez sur Entrée.
Pour utiliser pleinement les processeurs modernes, une ligne ne suffit pas, vous devrez peut-être répéter la commande pour épuiser toute la puissance du processeur.
Pour mettre fin à tout cela, mettez simplement
L'idée a été trouvée à l'origine ici , bien qu'elle soit destinée aux utilisateurs de Mac, mais cela devrait également fonctionner pour * nix.
la source
yes
commande (en supposant que le système était sinon inactif).Bien que je sois en retard à la fête, ce message figure parmi les meilleurs résultats de la recherche Google "générer une charge sous Linux".
Le résultat marqué comme solution pourrait être utilisé pour générer une charge système, je préfère utiliser
sha1sum /dev/zero
pour imposer une charge sur un cpu-core.L'idée est de calculer une somme de hachage à partir d'un flux de données infini (par exemple. / Dev / zero, / dev / urandom, ...) ce processus essaiera de maximiser un processeur-core jusqu'à ce que le processus soit abandonné. Pour générer une charge pour plus de cœurs, plusieurs commandes peuvent être regroupées.
par exemple. générer une charge à 2 noyaux:
sha1sum /dev/zero | sha1sum /dev/zero
la source
Un noyau (n'invoque pas de processus externe):
Deux noyaux:
Ce dernier fait seulement passer les deux à ~ 50% ...
Celui-ci fera passer les deux à 100%:
la source
renice 19 -p $$
. Cela maximisera toujours les processeurs, mais n'empiétera pas sur d'autres processus.Pour charger 3 cœurs pendant 5 secondes:
Il en résulte une charge élevée du noyau (sys) à partir des nombreux appels système write ().
Si vous préférez principalement la charge du processeur utilisateur:
Si vous souhaitez simplement que le chargement continue jusqu'à ce que vous appuyiez sur Ctrl-C:
la source
Voici un programme que vous pouvez télécharger ici
Installez facilement sur votre système Linux
et lancez-le dans une simple ligne de commande
pour mettre l'accent sur tous vos processeurs (comme vous en avez) avec 40 threads exécutant chacun un
sqrt
calcul complexe sur des nombres générés de manière aléatoire.Vous pouvez même définir le délai d'expiration du programme
contrairement à la solution proposée avec la
dd
commande, qui traite essentiellementIO
et donc ne surcharge pas vraiment votre système car vous travaillez avec des données.Le programme de stress surcharge vraiment le système car il traite du calcul.
la source
stress
commande. Comme le dit cette réponse, vous pouvez simplement l'installer via yum / apt / etc.Cette bombe à fourche causera des ravages au processeur et fera probablement planter votre ordinateur.
la source
Une boucle infinie est l'idée que j'ai eue aussi. Un aspect bizarre est:
(
:
est le même quetrue
, ne fait rien et sort avec zéro)Vous pouvez appeler cela dans un sous-shell et exécuter en arrière-plan. Faire cela
$num_cores
devrait suffire. Après avoir dormi le temps désiré , vous pouvez les tuer tous, vous obtenez les avec PIDsjobs -p
(indice:xargs
)la source
Je diviserais la chose en 2 scripts:
infinite_loop.bash:
cpu_spike.bash:
la source
la source
la source
J'ai utilisé
bc
( calculatrice binaire ), en leur demandant PI avec un grand nombre de décimales.avec NUMCPU (sous Linux):
Cette méthode est puissante mais semble conviviale , car je n'ai jamais écrasé un système utilisant cela.
la source
la source
:-)
Je suis allé sur Internet pour trouver quelque chose comme ça et j'ai trouvé ce script marteau cpu très pratique.
la source
NUM_PROC=${1:-10}
.En utilisant les exemples mentionnés ici, mais aussi l'aide d'IRC, j'ai développé mon propre script de test de stress CPU. Il utilise un sous-shell par thread et la technique de boucle sans fin. Vous pouvez également spécifier le nombre de threads et la durée de manière interactive.
la source
En utilisant les idées ici, le code créé qui se termine automatiquement après une durée définie, n'a pas à tuer les processus -
la source
Cela fait un tour pour moi:
et il n'utilise rien sauf bash.
la source
Pour améliorer la réponse de dimba et fournir quelque chose de plus enfichable (parce que j'avais besoin de quelque chose de similaire). J'ai écrit ce qui suit en utilisant le concept de chargement dd: D
Il vérifiera les cœurs actuels et créera autant de threads dd. Démarrer et terminer la charge de base avec Enter
la source
J'ai combiné certaines des réponses et ajouté un moyen d'échelle du stress à tous les processeurs disponibles:
la source
Dimba
dd if=/dev/zero of=/dev/null
est certainement correct, mais il convient également de mentionner la vérification du maximum du processeur à 100% d'utilisation. Vous pouvez le faire avecCela demande une sortie ps d'une moyenne d'une minute de l'utilisation du processeur par chaque processus, puis les additionne avec awk. Bien qu'il s'agisse d'une moyenne d'une minute, ps est suffisamment intelligent pour savoir si un processus ne dure que quelques secondes et ajuste la fenêtre temporelle en conséquence. Ainsi, vous pouvez utiliser cette commande pour voir immédiatement le résultat.
la source
pour augmenter la charge ou consommer le CPU à 100%
alors vous pouvez voir les utilisations du processeur en tapant la commande
pour libérer la charge
la source
Collez simplement ce mauvais garçon dans la SSH ou la console de n'importe quel serveur exécutant Linux.
Vous pouvez tuer les processus manuellement, mais j'arrête simplement le serveur lorsque j'ai terminé, plus rapidement.Edit: j'ai mis à jour ce script pour avoir maintenant une fonction de minuterie afin qu'il ne soit pas nécessaire de tuer les processus.
la source