web-dev-qa-db-fra.com

Comment obtenir des IOPS de lecture et d'écriture totales sous Linux?

Comment obtenir des IOPS de lecture et d'écriture séparément sous Linux, en utilisant la ligne de commande ou de manière programmatique? J'ai installé le package sysstat.

Veuillez me dire comment les calculer séparément à l'aide des commandes de package sysstat.

Ou est-il possible de les calculer à l'aide du système de fichiers?

ex:/proc ou /sys ou /dev

33
shas

iostat fait partie du package sysstat, qui peut afficher les iops globaux si vous le souhaitez, ou les afficher séparés par des lectures/écritures.

Exécutez iostat avec l'indicateur -d pour afficher uniquement la page d'informations sur le périphérique et -x pour des informations détaillées (statistiques de lecture/écriture distinctes). Vous pouvez spécifier le périphérique pour lequel vous souhaitez obtenir des informations en l'ajoutant simplement par la suite sur la ligne de commande.

Essayez d'exécuter iostat -dx et en regardant le résumé pour avoir une idée de la sortie. Vous pouvez aussi utiliser iostat -dx 1 pour afficher une sortie actualisée en continu, utile pour le dépannage ou la surveillance en direct,

En utilisant awk, le champ 4 vous donnera lectures/seconde , tandis que le champ 5 vous donnera écrit/seconde .

Lectures/seconde uniquement:

iostat -dx <your disk name> | grep <your disk name> | awk '{ print $4; }'

Écrit/s uniquement:

iostat -dx <your disk name> | grep <your disk name> | awk '{ print $5; }'

Lectures/sec et écrit/sec séparés par une barre oblique:

iostat -dx <your disk name> | grep <your disk name> | awk '{ print $4"/"$5; }'

IOPS globales (ce dont la plupart des gens parlent):

iostat -d <your disk name> | grep <your disk name> | awk '{ print $2; }'

Par exemple, l'exécution de la dernière commande avec mon lecteur principal,/dev/sda, ressemble à ceci:

dan@daneel ~ $ iostat -dx sda | grep sda | awk '{ print $4"/"$5; }' 15.59/2.70

Notez que vous n'avez pas besoin d'être root pour exécuter cela non plus, ce qui le rend utile pour les utilisateurs non privilégiés.

TL; DR: Si vous êtes simplement intéressé par sda, la commande suivante vous donnera des IOPS globales pour sda:

iostat -d sda | grep sda | awk '{ print $2; }'

Si vous souhaitez ajouter les IOPS sur tous les appareils tous, vous pouvez à nouveau utiliser awk:

iostat -d | tail -n +4 | head -n -1 | awk '{s+=$2} END {print s}'

Cela produit une sortie comme ceci:

dan@daneel ~ $ iostat -d | tail -n +4 | head -n -1 | awk '{s+=$2} END {print s}' 18.88

47
Daneel