J'aimerais faire une surveillance générale de l'io du disque sur un serveur Linux Debian. Quels sont les outils que je devrais connaître sur ce disque de contrôle io afin que je puisse voir si les performances d'un disque sont maximales ou augmentent à un certain moment de la journée?
Pour les tendances d'E/S disque, il existe quelques options. Mon préféré est la commande sar
de sysstat
. Par défaut, il donne une sortie comme celle-ci:
09:25:01 AM CPU %user %Nice %system %iowait %steal %idle
09:35:01 AM all 0.11 0.00 0.01 0.00 0.00 99.88
09:45:01 AM all 0.12 0.00 0.01 0.00 0.00 99.86
09:55:01 AM all 0.09 0.00 0.01 0.00 0.00 99.90
10:05:01 AM all 0.10 0.00 0.01 0.02 0.01 99.86
Average: all 0.19 0.00 0.02 0.00 0.01 99.78
Le %iowait
est le temps passé à attendre les E/S. En utilisant le paquet Debian, vous devez activer le collecteur de statistiques via le /etc/default/sysstat
fichier de configuration après l'installation du package.
Pour voir l'utilisation actuelle répartie par périphérique, vous pouvez utiliser la commande iostat
, également à partir du package sysstat:
$ iostat -x 1
Linux 3.5.2-x86_64-linode26 (linode) 11/08/2012 _x86_64_ (4 CPU)
avg-cpu: %user %Nice %system %iowait %steal %idle
0.84 0.00 0.08 1.22 0.07 97.80
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
xvda 0.09 1.02 2.58 0.49 112.79 12.11 40.74 0.15 48.56 3.88 1.19
xvdb 1.39 0.43 4.03 1.82 43.33 18.43 10.56 0.66 112.73 1.93 1.13
munin et cacti sont d'autres options pouvant afficher l'utilisation du disque dans les graphiques de tendance.
Jetez un œil à iotop.
Ou iodump, si c'est plus dans votre façon de penser.
Remarque: Cela nécessite au moins noyau 2.6.2 pour fonctionner.
J'aime dstat
. Il peut afficher des totaux et des statistiques par disque et même des périphériques md (RAID), peut également utiliser des couleurs pour une meilleure vue d'ensemble:
$ dstat -tdD total,sda,sdb,sdc,md1 60
----system---- -dsk/total----dsk/sda-----dsk/sdb-----dsk/sdc-----dsk/md1--
time | read writ: read writ: read writ: read writ: read writ
08-11 22:08:17|3549k 277k: 144k 28k: 851k 62k: 852k 60k: 25k 82k
08-11 22:09:17| 60k 258k:1775B 15k: 13k 63k: 15k 60k: 68B 74k
08-11 22:10:17| 176k 499k: 0 14k: 41k 122k: 41k 125k: 273B 157k
08-11 22:11:17| 42k 230k: 0 14k:9830B 54k: 14k 51k: 0 70k
08-11 22:11:52| 28k 132k: 0 5032B:5266B 33k:9479B 28k: 0 37k
-t
pour les horodatages-d
pour les statistiques du disque-D
pour spécifier les appareils exacts à signaler60
en moyenne sur 60 secondes. L'affichage est mis à jour toutes les secondes, mais seulement une fois toutes les 60 secondes une nouvelle ligne sera démarrée.
non utilisé dans cet exemple, mais -c
peut signaler une attente IO pourcentage, ce qui, dans la plupart des cas, est lié au fait que le processeur attend les données des disques.
Il est disponible pour la plupart des distributions Linux, mais doit parfois être installé à partir de référentiels.
Juste à partir de fichiers sur votre ordinateur (en supposant un noyau récent), vous pouvez demander /sys/block/sda/stat
ou /proc/diskstats
. Il faudra cependant un peu de traduction. Mais c'est sympa pour un contrôle rapide et sale.
Une autre option consiste à utiliser: Sudo iotop -aoP
-a Will show accumulated output
-o Will only output
-P Will only show processes instead of threads
Ce programme vous indiquera combien un processus a écrit sur le disque et lu depuis le disque depuis le démarrage d'iotop.
La surveillance de Disk Io peut être effectuée par plusieurs outils tels que les suivants.
Certains concepts de système d'exploitation importants sont également très nécessaires pour les comprendre .. lire le Linux IO tutoriel complet
atop
Un autre excellent outil pour un aperçu rapide de l'origine de la charge
Il peut vous montrer une vue d'ensemble de toutes les ressources (CPU, mémoire/swap, réseau et E/S disque) ou vous pouvez explorer une ressource unique et trier les processus en fonction de leur consommation.
Pourquoi ne pas essayer nmon . Il fait des disques et réseau avec des processus. Initialement pour AIX mais il est porté sur Linux depuis quelques années maintenant.