web-dev-qa-db-fra.com

Comment puis-je surveiller le disque io?

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?

280
camomileCase

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.

240
jordanm

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.

111
tink

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 à signaler
  • 60 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.

99
jippie

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.

52
charlesbridge

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.

39
lanoxx

La surveillance de Disk Io peut être effectuée par plusieurs outils tels que les suivants.

  1. Iostat
  2. Iozone
  3. SAR
  4. vmstat

Certains concepts de système d'exploitation importants sont également très nécessaires pour les comprendre .. lire le Linux IO tutoriel complet

8
sarath

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.

7
Aaron Digulla

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.

5
Steve Rowe

La meilleure chose à faire si vous voulez voir les performances sur une longue période est d'utiliser Centreon qui est un puissant outil basé sur Nagios . Centreon vous permet de surveiller en dessinant des graphiques des performances des ressources et bien d'autres choses.

1
omar