Question

J'ai une RHEL à mettre sous une quantité modérée et variable de Charge du processeur (50% à 75%).

Quelle est la meilleure façon de s'y prendre? Existe-t-il un programme capable de faire cela que je ne sache pas? Je suis heureux d’écrire du code C pour que cela se produise. Je ne sais tout simplement pas quels appels système aideront.

Était-ce utile?

La solution

C’est exactement ce dont vous avez besoin: http://weather.ou.edu/~apw/projects/stress/

À partir de la page d'accueil: "stress est un simple générateur de charge de travail pour les systèmes POSIX. Il impose au système une quantité configurable d’UC, de mémoire, d’E / S et de disque. Il est écrit en C et est un logiciel libre sous licence GPL. "

Autres conseils

Recherchez un programme simple de recherche par nombres premiers ayant un code source. Modifiez le code source pour ajouter un appel nanosleep à la boucle principale, quel que soit le délai imparti, ce qui vous donne la charge CPU souhaitée.

Un moyen courant de charger un système est de compiler encore et encore un gros logiciel. Quelque chose comme le noyau Linux.

Obtenez une copie du code source, extrayez le fichier tar.bz2, accédez au répertoire source de niveau supérieur, copiez la configuration de votre noyau depuis / boot vers .config ou zcat /proc/config.gz > .config, ils font oldconfig, alors que true; faites nettoyer & amp; & amp; faire bzImage; fait

Si vous avez un système SMP, alors make -j bzImage est amusant, il va générer des tâches en parallèle.

Un problème avec ceci est le réglage de la charge du processeur. Ce sera une charge maximale du processeur, sauf pour l'attente des E / S du disque.

Vous pouvez éventuellement le faire en utilisant un script Bash. Utilisez " ps -o pcpu | grep -v CPU " pour obtenir l'utilisation du processeur de tous les processus. Ajoutez toutes ces valeurs ensemble pour obtenir l'utilisation actuelle. Ensuite, utilisez une boucle while while qui continue à vérifier ces valeurs, à déterminer l’utilisation actuelle de la CPU et à attendre un laps de temps calculé pour maintenir le processeur à un certain seuil. Plus de détails sont nécessaires, mais j'espère que cela vous donnera un bon point de départ.

Consultez le script CPU Monitor que j'ai trouvé et que j'essaie de obtenez d'autres idées sur la façon dont vous pouvez y parvenir.

Cela dépend vraiment de ce que vous essayez de tester. Si vous testez simplement la charge du processeur, de simples scripts mangeant des cycles de processeur vides fonctionneront correctement. J'ai personnellement eu à tester les performances d'une matrice RAID récemment et je me suis appuyé sur Bonnie ++ et IOZone. IOZone mettra une charge décente sur la boîte, en particulier si vous définissez une taille de fichier supérieure à la RAM.

Vous pouvez également être intéressé par cet article .

Utilisez le " nice " commande.

a) Priorité la plus haute: $ nice -n -20 ma_commande

ou

b) Priorité la plus basse: $ nice -n 20 ma_commande

Un script simple pour charger & amp; marteler le processeur en utilisant awk. Le script effectue des calculs mathématiques et, par conséquent, la charge du processeur atteint des valeurs plus élevées transmises à chargeserver.sh.

consultez le script @ http://unixfoo.blogspot.com/2008/11/linux-cpu -hammer-script.html

Vous pouvez probablement utiliser un outil générateur de charge à cet effet ou exécuter un script prenant tous les cycles de la CPU, puis utilisez nice et renice sur le processus pour faire varier le pourcentage de cycles obtenus par le processus.

Voici un exemple de script bash qui occupera tous les cycles libres de la CPU:

#!/bin/bash
while true ; do
true
done

Lookbusy active la valeur définie pour la charge du processeur. Site du projet

lookbusy -c util[-high_util], --cpu-util util[-high_util]

i.e. 60% load
lookbusy -c 60

Vous ne savez pas quel est votre objectif ici. Je pense que glxgears utilisera 100% du processeur.

Trouvez tous les processus dont vous savez que le processeur atteindra 100%.

Si vous disposez de quatre cœurs de processeur (0 1 2 3), vous pouvez utiliser l'option "taskset". pour lier ce processus pour dire les processeurs 0 et 1. Cela devrait charger votre boîte à 50%. Pour le charger à 75%, liez le processus à 0 1 2 processeurs.

Avertissement: Je n'ai pas testé cela. S'il vous plaît laissez-nous savoir vos résultats. Même si cela fonctionne, je ne suis pas sûr de ce que vous obtiendrez de cela?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top