Festplatten-E / A pro Pid

9

Gibt es eine Möglichkeit, die Festplatten-E / A pro PID / Prozess anzuzeigen? Monitorix zeigt mir Folgendes und korrigiert mich, wenn ich falsch liege, aber es sieht so aus, als würde die Festplatte das gesamte System verlangsamen: Geben Sie hier die Bildbeschreibung ein

UPDATE # 1

Atop scheint über alles einen tollen Überblick zu geben.

  • Darf ich Sie fragen, was das Warten, das ich rot markiert habe, bedeutet?
  • Ist das das Warten von der Festplatten-E / A.

Geben Sie hier die Bildbeschreibung ein

user2693017
quelle
2
Sie haben entweder oben, iotop oder pidstat
sebelk
1
@sebelk Hey, ich habe die Frage aktualisiert, es wäre schön, wenn du einen Blick darauf werfen kannst. :)
user2693017
1
Es war nicht wirklich möglich, eine beste Antwort auszuwählen, also entschied ich mich für die, die mir am meisten half, und stimmte die anderen zu.
user2693017
@ user2693017 - das ist völlig in Ordnung, da das OP Ihr Vorrecht ist, welches A Ihren Anforderungen am besten entspricht.
slm

Antworten:

3

Es fällt mir schwer, diese Bilder gut anzusehen, aber:

Schauen Sie sich den Mann oben an:

Ich frage mich, ob Sie im CPU-Bereich endlich nach etwas anderem fragen:

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.

Auf jeden Fall können Sie die festplattenspezifischen Statistiken lesen:

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.

Sowie diese Optionen.

D.

    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
quelle
vielen Dank. Wenn es aufgrund der Größe schwierig ist, nehmen Sie den direkten Link: i.stack.imgur.com/5ifJi.png
user2693017
8

Ich glaube, es gibt viele Werkzeuge. Einer von ihnen ist pidstat:

pidstat -d 5

Zeigt alle 5 Sekunden E / A von Prozessen an.

Beispiel

$ 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

Ab dem Punkt, an dem Sie das Ctrl+ C(aka. ^C) Sehen, sind die Summen für die Dauer des obigen Laufs.

slm
quelle
schön, ist es möglich, es 1 Stunde laufen zu lassen und die Gesamtergebnisse zu erhalten?
user2693017
Vielleicht habe ich es noch nicht versucht. Sie können auch die PIDs definieren, die Sie überprüfen möchten.
3

Schauen Sie sich diese U & L-Fragen und Antworten mit dem Titel: Amazon EC2-Mikroinstanz mit einer großen Anzahl von E / A- Anforderungen an , in denen ich Details zu einem Tool namens aufstelle fatrace. Ich beschreibe es auch in diesem Q & A mit dem Titel: Bestimmen einer bestimmten Datei, die für hohe E / A verantwortlich ist .

Fatrace

Dies ist eine neue Erweiterung des Linux-Kernels und eine willkommene Erweiterung, daher nur in neueren Distributionen wie Ubuntu 12.10. Meinem Fedora 14-System fehlte es 8-).

Es bietet denselben Zugriff, den Sie über inotify erhalten können, ohne auf ein bestimmtes Verzeichnis und / oder bestimmte Dateien abzielen zu müssen.

$ 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

Das Obige zeigt Ihnen die Prozess-ID, die den Dateizugriff ausführt, und die Datei, auf die zugegriffen wird, aber es gibt Ihnen keine allgemeine Bandbreitennutzung, sodass jeder Zugriff von keinem anderen Zugriff zu unterscheiden ist.

HINWEIS: Sie fatrace können ein -p PIDArgument verwenden, um es anzuweisen, stattdessen eine einzelne PID zu überwachen.

slm
quelle
Wirklich schönes Werkzeug, danke, ich wusste nichts davon!
Sebelk
Sie haben ein verwandtes und nettes Tool, das ftop
sebelk
@sebelk - yup danke, habe das auch schon installiert.
slm
Ich mag dieses Tool. Es zeigt, welche Aufgabe auf welche Dateien auf der Festplatte zugreift. Diese Dateien können jedoch auch mmaped werden, sodass nur Pufferzugriff und kein E / A-Zugriff erfolgt.