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
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