[ Linux ] Créer une charge CPU / LOAD

 dans Linux, OSX, Outils, Sécurité, Serveur

Hello les geeks !

J’avais besoin de faire des tests de charge sur un serveur, pour valider le fonctionnement d’une chaine de connexion à un backend HTTP.
Le but n’était pas de le crasher ( simple à faire avec un fork bomb ), mais de le faire charger suffisament de manière à le rendre instable.

J’ai fais quelques recherches sur la toile afin de garder que les meilleurs que j’ai bien évidemment testé sur un serveur de dev ( machine virtuelle ).
Je ne vous fait plus attendre !

 

Via la commande « dd » :

dd if=/dev/zero of=/dev/null

Dans le cas ou vous avez plusieurs CPU ( ici 4 CPU, toujours via la commande « dd » ) :

fullcpu() { 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 & }; fullcpu; read; killall dd

Via un while ( un ou plusieurs CPU ) :

while [1]; do echo $((13**99)) 1> /dev/null 2>&1; done

Toujours via un while ( utilisation CPU à 50% ) :

while true; do true; done
while true; do /bin/true; done

Toujours via un while ( utilisation CPU à 100% ) :

while true; do echo; done

Avec la méthode de fork bombe :

:(){ :|:& };:

Via la commande « cat » :

cat /dev/urandom > /dev/null

Via la commande « bc » ( calculatrice pour ceux qui ne connaisse pas ) :

for ((i=0;i<$NUMCPU;i++));do echo 'scale=100000;pi=4*a(1);0' | bc -l & done ; sleep 4; killall bc

 

Via la commande « stress » ( outil spécialisé ) :

stress -c 40 -timeout 10s

La ligne ci-dessous permet de charger l’ensemble de vos CPU avec 40 threads ( l’option -c 40 ) dont chacun va exécuter un calcul complexe sur des nombres générés aléatoirement.
L’autre option ( -timeout 10s ) vous permet de définir un délai d’attente sur le processus.

L’outil est différente de la commande « dd » car il permet de faire réellement du calcul. L’outil « dd » quand à lui va beaucoup travailler sur les IO, ce qui fera monter en charge votre poste mais pas de la même manière…

 

Si vous connaissez d’autres commandes, les commentaires sont disponibles !
Chacune des commandes sera bien évidemment testée et rajouter dans cet article avec le « pseudo » de la personne l’ayant postée.

Et maintenant ? A vos claviers !
A bientôt

Articles recommandés