Comprendre l’utilisation du processeur ‘top’

Qu’est-ce que cela signifie exactement d’avoir un processeur de 350% (par un processus) sur une boîte à 4 processeurs? Le processus est un «mysqld» qui est actuellement «bombardé» par un scénario OLTP simulé.

Tout pointeur apprécié.

Dans le pays * NIX, l’utilisation de 100% du processeur est de 100% d’un seul processeur.

Cela s’applique aux processeurs multicœurs de la même manière que les vrais ordinateurs multiprocesseurs.

Donc, vous utilisez 7 / 8ème de vos cycles de processeur total sur mysql.

En cours d’exécution, appuyez sur “1”. Cela va basculer la vue afin que vous puissiez voir la charge par cœur / processeur individuel.

Je viens de lire un article intéressant sur ce sujet hier: la moyenne de chargement Unix . Il vous expliquera tout ce que vous devez savoir et plus encore.

Extrait :

La moyenne de chargement est la sum de la longueur de la queue d’exécution et du nombre de travaux en cours d’exécution sur les processeurs. Dans Solaris 2.0 et 2.2, la moyenne de chargement n’incluait pas les travaux en cours d’exécution, mais ce bogue a été corrigé dans Solaris 2.3.

Considérons qu’il existe deux modes de base pour afficher la charge: “Mode IRIX” et “Mode Solaris”. En mode IRIX (Linux par défaut), une moyenne de charge de 1 signifie qu’un processeur est complètement chargé (ou 25% de chaque CPU sur un système à 4 processeurs, etc.). En mode Solaris, une moyenne de charge de 1 signifie que tous les processeurs sont complètement chargés (ce qui signifie qu’ils sont en réalité équivalents à la charge “mode IRIX” divisée par le nombre de processeurs ).

La moyenne de chargement indique le nombre de processus en attente dans la queue (ajusté en fonction du nombre de processeurs). Avec un CPU, une moyenne de charge de 1,0 signifie que ce processeur est capable de traiter de manière optimale toutes les requêtes de la queue – aucun processus n’attend le CPU, et aucun cycle de processeur n’est perdu (c’est-à-dire inactif). Une moyenne de charge de 2,0 (sur un système monocœur (cela signifierait que la moitié des processus attendraient une chance de fonctionner sur le processeur 🙁 Une moyenne de charge de 0,33 signifierait qu’il y a si peu de charge sur le système que 2/3 du temps, le processeur ne fait rien d’autre que d’attendre que d’autres processus soient exécutés.

Le pourcentage de CPU indiqué par top est une mesure de la fréquence à laquelle un seul processus est chargé par le kernel pour s’exécuter sur le processeur, en moyenne sur une période donnée. Donc, 350% sur un système à 4 cœurs signifie que, pendant un certain temps, mysqld prendrait trois processeurs complets et deux fois moins de temps que le quasortingème processeur – c’est-à-dire qu’il a tellement de threads kernelx avec des requêtes. Le pourcentage de CPU ne prend pas vraiment en compte les files d’attente (bien que la moyenne de charge le fasse): c’est une statistique après-coup de ce qui s’est passé dans un certain laps de temps. Mais cela montre bien quels processus ont utilisé le ou les processeurs récemment.

Un autre article approfondi sur le même sujet: http://www.linuxjournal.com/article/9001

Il y a 4 x 100%, donc “top” affiche un total de 400% sur une boîte à 4 processeurs.

Chaque processus cpu est considéré comme 100%. Donc, totatlly 400% de 4 cpu.