E / S de disque dur par Pid

9

existe-t-il un moyen de voir les E / S disque par pid / processus? Monitorix me montre ce qui suit et me corrige si je me trompe, mais il semble que le disque dur ralentit l'ensemble du système: entrez la description de l'image ici

MISE À JOUR # 1

Atop semble donner un excellent aperçu de tout.

  • Puis-je vous demander ce que signifie l'attente que j'ai marquée en rouge?
  • Est-ce l'attente des E / S disque?

entrez la description de l'image ici

user2693017
la source
2
Vous avez soit au sommet, iotop ou pidstat
sebelk
1
@sebelk Hé, j'ai mis à jour la question, ce serait bien si vous pouviez y jeter un œil. :)
user2693017
1
il n'était pas vraiment possible de sélectionner la meilleure réponse, j'ai donc décidé de prendre celle qui m'a le plus aidé et j'ai voté pour les autres.
user2693017
@ user2693017 - c'est tout à fait correct, car l'OP est votre prérogative qui correspond le mieux à vos besoins.
slm

Réponses:

3

C'est difficile pour moi de bien regarder ces photos, mais:

Jetez un œil à l'homme au sommet:

Je me demande si vous demandez enfin autre chose, dans la section CPU vous avez:

Every  line contains the percentage of cpu time spent in kernel mode by all
active processes (`sys'), the percentage of cpu time consumed in user mode
(`user') for all active processes (including processes running with a nice
value larger than zero), the  percentage  of  cpu  time spent  for  interrupt
handling  (`irq')  including  softirq, the percentage of unused cpu time while
no processes were waiting for disk-I/O (`idle'), and the percentage of unused
cpu time while at least one process was waiting for disk-I/O (`wait').

In case of per-cpu occupation, the last column shows the cpu number and the
wait percentage (`w') for that cpu.  The number of lines showing the per-cpu
occupation can be limited.

Quoi qu'il en soit, vous pouvez lire les statistiques spécifiques au disque:

d    Show disk-related output.

            When "storage accounting" is active in  the  kernel,  the  
            following  fields  are shown: process-id, amount of data read 
            from disk, amount of data written to disk, amount of data that 
            was written but has been withdrawn again (WCANCL), disk 
            occupation percentage and process name.

Ainsi que ces options.

    D   Sort  the  current  list  in the order of disk accesses issued.  
        The one-but-last column changes to ``DSK''.
        ...

RDDSK

RDDSK   When the kernel maintains standard io statistics (>= 2.6.20):

        The  read  data  transfer issued physically on disk (so reading from 
        the disk cache is not accounted for).
        ...

WRDSK

WRDSK   When the kernel maintains standard io statistics (>= 2.6.20):

        The  write  data  transfer  issued physically on disk (so writing to 
        the disk cache is not accounted for).  This counter is maintained 
        for the  application process  that writes its data to the cache 
        (assuming that this data is physically transferred to disk later 
        on). Notice that disk I/O needed for swapping is not taken into 
        account.
        ....

LVM / MDD / DSK

LVM/MDD/DSK
        Logical volume/multiple device/disk utilization. 

        Per active unit one line is produced, sorted on unit activity.
        Such  line shows the name (e.g. VolGroup00-lvtmp for a logical
        volume or sda for a hard disk), the busy percentage i.e. the
        portion of time that the unit was busy handling requests
        (`busy'),  the  number  of  read  requests  issued  (`read'), the
        number of write requests issued (`write'), the number of KiBytes
        per read (`KiB/r'),  the  number of  KiBytes  per write
        (`KiB/w'), the number of MiBytes per second throughput for reads
        (`MBr/s'),  the  number  of  MiBytes  per second  throughput  for
        writes (`MBw/s'), the average queue depth (`avq') and the average
        number of milliseconds needed by a request (`avio') for seek,
        latency and data transfer.

        If the screen-width does not allow all of these counters, only a
        relevant subset is shown.

        The  number of lines showing the units can be limited per class
        (LVM, MDD or DSK) with the 'l' key or statically (see separate
        man-page of atoprc).  By specifying the  value  0  for  a
        particular class, no lines will be shown any more for that class.
sebelk
la source
Merci beaucoup. Si c'est difficile à cause de la taille, prenez le lien direct: i.stack.imgur.com/5ifJi.png
user2693017
8

Je pense qu'il y a beaucoup d'outils. L'un d'eux est pidstat:

pidstat -d 5

Affiche les E / S des processus toutes les 5 secondes.

Exemple

$ pidstat -d 5
Linux 3.12.11-201.fc19.x86_64 (greeneggs.bubba.net)     03/04/2014  _x86_64_    (4 CPU)

06:19:05 PM   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
06:19:10 PM  1000     29486      0.00    317.93      0.00  chrome

06:19:10 PM   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
06:19:15 PM  1000     29486      0.00    368.00      0.00  chrome

06:19:15 PM   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
06:19:20 PM  1000     29486      0.00    591.62    836.73  chrome

06:19:20 PM   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
06:19:25 PM  1000      2410      0.00      0.80      0.00  mono
06:19:25 PM  1000     29486      0.00    262.40      0.00  chrome
^C

Average:      UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
Average:     1000      2410      0.00      0.20      0.00  mono
Average:     1000     29486      0.00    385.02    209.29  chrome

Du point où vous voyez le Ctrl+ C(aka. ^C) Est le total pour la durée de la course ci-dessus.

slm
la source
bien, est-il possible de le laisser fonctionner pendant 1 heure et d'obtenir les résultats globaux?
user2693017
peut-être que je ne l'ai pas encore essayé. Vous pouvez également définir les PID que vous souhaitez inspecter.
3

Jetez un œil à cette Q&R U&L intitulée: Micro-instance Amazon EC2, grand nombre de demandes d'E / S , où je fournis des détails sur un outil appelé fatrace. Je le couvre également dans ce Q&R intitulé: Déterminer le fichier spécifique responsable des E / S élevées .

fatrace

Il s'agit d'un nouvel ajout au noyau Linux et bienvenu, donc il n'est disponible que dans les distributions plus récentes telles que Ubuntu 12.10. Mon système Fedora 14 en manquait 8-).

Il offre le même accès que vous pouvez obtenir via inotify sans avoir à cibler un répertoire et / ou des fichiers particuliers.

$ sudo fatrace
pickup(4910): O /var/spool/postfix/maildrop
pickup(4910): C /var/spool/postfix/maildrop
sshd(4927): CO /etc/group
sshd(4927): CO /etc/passwd
sshd(4927): RCO /var/log/lastlog
sshd(4927): CWO /var/log/wtmp
sshd(4927): CWO /var/log/lastlog
sshd(6808): RO /bin/dash
sshd(6808): RO /lib/x86_64-linux-gnu/ld-2.15.so
sh(6808): R /lib/x86_64-linux-gnu/ld-2.15.so
sh(6808): O /etc/ld.so.cache
sh(6808): O /lib/x86_64-linux-gnu/libc-2.15.so

Ce qui précède vous montre l'ID de processus qui accède au fichier et à quel fichier il accède, mais il ne vous donne aucune utilisation globale de la bande passante, donc chaque accès est impossible à distinguer de tout autre accès.

REMARQUE: fatrace peut prendre un -p PIDargument afin que vous puissiez le diriger pour regarder un seul PID si vous le souhaitez.

slm
la source
Outil vraiment sympa, merci je n'en savais rien!
sebelk
vous avez un outil connexe et agréable qui est ftop
sebelk
@sebelk - oui merci, avez déjà installé cela aussi.
slm
J'aime cet outil. Il montre quelle tâche accède à quels fichiers sur le disque. Ces fichiers peuvent cependant également être mappés, donc seul l'accès au tampon se produit et aucun accès IO.