GNU/Linux >> Tutoriels Linux >  >> Linux

Comment puis-je surveiller la charge du disque dur sous Linux ?

Solution 1 :

Vous pouvez obtenir une assez bonne mesure de cela en utilisant le iostat outil.

% iostat -dx /dev/sda 5

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.78    11.03    1.19    2.82    72.98   111.07    45.80     0.13   32.78   1.60   0.64

L'utilisation du disque est répertoriée dans la dernière colonne. Ceci est défini comme

Pourcentage de temps CPU pendant lequel des demandes d'E/S ont été envoyées à l'appareil (utilisation de la bande passante pour l'appareil). La saturation de l'appareil se produit lorsque cette valeur est proche de 100 %.

Solution 2 :

iotop est une version de top qui examine la quantité d'E/S utilisée par chaque processus. C'est dans les référentiels ubuntu standard; Je ne sais pas si c'est dans RHEL ou Fedora, mais ça devrait l'être.

Pour les noyaux plus anciens (disons CentOS 5.x ou RHEL 5.x) qui ne prennent pas en charge iotop, utilisez plutôt topio (documenté ici :http://yong321.freeshell.org/freeware/pio.html#linux. Il repose sur / proc//io pour les statistiques io et fournit des fonctionnalités similaires à iotop. Voir le lien pour plus de détails.

Solution 3 :

Comme suggéré par sastanin dans les commentaires, vous pouvez traiter directement les valeurs données dans /sys/block/sda/stat ou /proc/diskstats . Cela peut être utile lorsqu'aucun des autres outils mentionnés n'est disponible et que vous ne pouvez pas les installer facilement.

Par exemple (IIUC) quelque chose comme ça (en bash) devrait donner le nombre de lectures par seconde :

OLD=`awk '{print $1}' /sys/block/sda/stat` # First field is number of read I/Os processed
DT=1
for ii in `seq 1 10`
do
    sleep $DT
    NEW=`awk '{print $1}' /sys/block/sda/stat`
    echo $((($NEW-$OLD)/$DT))
    OLD=$NEW
done

Voir https://www.kernel.org/doc/Documentation/iostats.txt et https://www.kernel.org/doc/Documentation/block/stat.txt pour la documentation.

Solution 4 :

Vous devriez jeter un coup d'œil à atop, qui combine la puissance de iotop/top/iftop, le tout en un seul endroit, et met en évidence les parties critiques de votre système.

Solution 5 :

Je recommanderais de jeter un coup d'œil à l'outil nmon. Il vous montrera la charge en direct sur un certain nombre de paramètres système ainsi que l'enregistrement des données dans un fichier pour une lecture ultérieure. C'est un outil gratuit disponible ici :


Linux
  1. Comment installer un pilote de périphérique sous Linux

  2. Comment partitionner un disque sous Linux

  3. Linux - Comment configurer la mise en miroir de disque (raid-1) ?

  4. Comment puis-je surveiller les données sur un port série sous Linux ?

  5. Comment monter un appareil sous Linux ?

Comment trouver les détails du disque dur sous Linux

Comment répertorier les partitions de disque sous Linux

Comment trouver la vitesse de transfert de données du disque dur sous Linux

Comment vérifier les blocs défectueux ou les secteurs défectueux sur le disque dur sous Linux

Comment chiffrer une partition sous Linux

Comment Linux charge-t-il l'image 'initrd' ?