GNU/Linux >> Tutoriels Linux >  >> Linux

Évaluation de l'attente d'E/S CPU sous Linux

Vous devez être prudent lorsque vous évaluez ces chiffres.

  1. IOWait est lié, mais pas nécessairement linéairement corrélé à l'activité du disque.
  2. Le nombre de processeurs dont vous disposez affecte votre pourcentage.
  3. Un IOWait élevé (selon votre application) ne signifie pas nécessairement signaler un problème pour vous. Alternativement, un petit IOWait peut se traduire par un problème pour vous. Cela se résume essentiellement à la tâche en attente.

IOWait dans ce contexte est la mesure du temps sur une période donnée qu'un CPU (ou tous les CPU) a passé inactif parce que toutes les tâches exécutables attendaient qu'une opération IO soit accomplie.

Dans votre exemple, si vous avez 20 processeurs, avec une tâche martelant vraiment le disque, cette tâche passe (en fait) 100% de son temps dans IOWait, par la suite le processeur sur lequel cette tâche s'exécute passe presque 100% de son temps dans Attendez. Cependant, si 19 autres processeurs sont effectivement inactifs et n'utilisent pas ce disque, ils signalent 0 % IOWait. Cela se traduit par un pourcentage moyen d'IOWait de 5 %, alors qu'en fait, si vous deviez jeter un coup d'œil à l'utilisation de votre disque, cela pourrait indiquer 100 %. Si l'application en attente sur le disque est essentielle pour vous, ces 5 % sont quelque peu trompeurs, car la tâche dans le goulot d'étranglement rencontre probablement des problèmes de performances beaucoup plus élevés qu'une lenteur de 5 %.

il y a presque autant de processus CPU en attente que de travail ? (=> mauvais)

Probablement, souvenez-vous que la plupart du temps, les CPU exécutent des tâches et que les tâches sont ce qui demande des E/S. Si deux tâches distinctes sont occupées à interroger le même disque sur deux processeurs distincts, cela mettra les deux processeurs à 100 % IOWait (et dans l'exemple de 20 processeurs, une moyenne globale de 10 % IOWait).

Fondamentalement, si vous avez beaucoup de tâches qui demandent des E/S, en particulier à partir du même disque, plus ce disque est utilisé à 100 % (voir iostat -mtx ) alors c'est mauvais.

les processus de travail attendent 5,0% de leur plan d'exécution ? (=> ok dans ce cas)

Non. Les processus de travail attendent presque certainement IO à plein temps. C'est juste le cas de rapport moyen ("les autres processeurs ne sont pas occupés") truque le pourcentage ou le fait que le processeur a de nombreuses tâches à exécuter, dont beaucoup n'ont pas besoin de faire d'E/S.

En règle générale, sur un système multi-CPU, un pourcentage IOWait égal au nombre de CPU que vous avez divisé par 100 est probablement quelque chose à étudier.

autre chose

Voir au dessus. Mais notez que les applications qui écrivent très lourdement sont limitées (arrêtez d'utiliser l'écriture différée, commencez à écrire directement sur le disque). Cela fait que ces tâches produisent un IOWait élevé alors que d'autres tâches sur le même processeur écrivant sur le même disque ne le feraient pas. Il existe donc des exceptions.

Notez également que si vous avez 1 CPU dédié à l'exécution de 2 tâches, l'une est une lecture/écriture lourde d'E/S et l'autre est un gros utilisateur de CPU, alors la CPU signalera 50% IOWait dans ce cas, si vous avez 10 tâches comme celle-ci serait de 10 % IOWait (et une charge épouvantable), de sorte que le nombre peut être signalé bien inférieur à ce qui pourrait réellement être un problème.

Je pense que vous devez vraiment jeter un œil à iostat -mtx pour obtenir des mesures d'utilisation du disque, et pidstat -d pour obtenir des métriques par processus, déterminez si les applications qui frappent ces disques de cette manière sont susceptibles de causer un problème, ou si d'autres applications potentielles qui frappent ces disques sont susceptibles de causer un problème.

Les métriques CPU agissent vraiment comme des indicateurs des problèmes sous-jacents, elles sont générales, donc comprendre où elles peuvent être aussi général est une bonne chose.


Linux
  1. Comment savoir si le disque est un SSD ou un disque dur sous Linux

  2. Rapports d'E/S à partir de la ligne de commande Linux

  3. Linux - Rend la copie de disque/disque plus lente ?

  4. Comment faire des E/S de console non bloquantes sous Linux en C ?

  5. Comment arrêter le processus "sans interruption" sous Linux ?

Comment le noyau Linux gère les interruptions

10 Commande Linux iostat pour rapporter les statistiques du CPU et des E/S

Dépannage des serveurs lents :comment vérifier le processeur, la RAM et les E/S de disque

10 exemples iozone pour la mesure des performances d'E/S de disque sous Linux

Les 15 meilleurs logiciels de clonage de disque pour Linux Desktop

Baisse massive et imprévisible des performances d'E/S sous Linux