Frage Ermitteln, welcher Prozess schwerwiegende Datenträger-E / A verursacht?


Ich habe diese Frage gesehen:    Wie erkenne ich schweres Schreiben auf Festplatte?

Und ich habe gebraucht dstat und oben auf vor ... aber sie scheinen nicht genau zu bestimmen, welcher Prozess Platten-E / A verursacht. Zum Beispiel von dstat:

dstat -ta --top-bio
----system---- ----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system-- ----most-expensive----
     time     |usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw |  block i/o process
14-12 16:16:25| 22   3  49  26   0   0|2324k    0 |  17k 6144B|   0     0 |1324     0 |
14-12 16:16:26| 24   3  30  43   0   0|4960k 8192B|1498B 4322B|   0     0 |1494     0 |wget          0  4096B
14-12 16:16:27| 25   4  38  33   0   0|4612k  548k|5011B   27k|   0     0 |1582     0 |kjournald     0    24k
14-12 16:16:28| 23   3  42  32   0   0|5072k    0 |  24k 4368B|   0     0 |1495     0 |

Beachten Sie, wie hoch dsk / total ist - zwischen 2 und 5 MB / s. Aber dann schau dir 'teuerste' Spalte an - es ist nur ein paar Bytes hier, ein paar KB dort und manchmal sogar nichts. Es ist die gleiche Sache mit "oben". Zeigt eine hohe allgemeine Festplattennutzung, aber geringe Auslastung einzelner Prozesse. Ich betreibe CentOS 5, Kernel 2.6.18-53.

Brauche ich eine neuere Kernel-Version? Vielleicht irgendeine Systemkonfiguration irgendwo? Die 'atop'-Homepage empfiehlt die Installation einiger Kernel-Patches, aber ich möchte lieber nicht meinen eigenen Kernel konfigurieren und kompilieren.


19
2017-12-14 22:25


Ursprung




Antworten:


Iotop (Verknüpfung) für Starter;) Ich habe nicht gesehen, dass Sie eine Ausgabe von ihm veröffentlichen.

1: Ich habe fast die gleiche Situation mit einem Logging-Dateisystem und atime erlebt - allerdings mit mehr Schreibvorgängen.

Versuchen Sie, mit notime erneut mounten und Dateisystemprotokollierung (später nur zum Testen) zu deaktivieren, um zu sehen, ob es Dateisystem basiert und wie gesagt, iotop, wenn es prozessbasiert ist.

2: Ich nehme an, dass diese Partition nicht Teil eines RAID-Array ist, das gerade neu erstellt wird, oder?

3: Wenn Sie viele sehr kleine Dateien haben (viel kleiner als die Blockgröße und / oder Blockgröße), und Sie diese kleinen Dateien lesen, lesen Sie am Ende ganze Blöcke aus dem System und die meisten von diesen Blöcken wird für nichts gelesen.

4: Wenn oben nichts hilft, können Sie immer die Liste der Dateien abrufen, auf die zugegriffen wird

echo 1 > /proc/sys/vm/block_dump

Bitte beachten Sie, dass dadurch die Systemleistung stark beeinträchtigt wird. Anweisungen sind in meinem verfügbar vorheriger Beitrag hier


26
2017-12-14 22:34



Beat mich mit etwa 5 Sekunden;) +1 - pehrs
Ich hatte nur Glück, aber fast sofort die Antwort erweitert, da es nicht genau eine Antwort auf die Frage war;) - asdmin