Nun, Sie könnten die folgenden Befehle ausprobieren, die bei mir in RHEL6 funktioniert haben:
1) Welches Gerät auch immer Sie in der "iostat"-Ausgabe sehen, das mehr E/A ausführt, verwenden Sie es mit fuser
Befehl wie folgt:
fuser -uvm device
2) Sie erhalten eine Liste von Prozessen mit dem Benutzernamen, die mehr E/A verursachen. Wählen Sie diese PIDS aus und verwenden Sie sie in lsof
Befehl wie folgt:
lsof -p PID | more
3) Sie erhalten eine Liste der Dateien/Verzeichnisse zusammen mit dem Benutzer, der die maximale E/A ausführt.
Es scheint, dass es keine Tools gibt, um den E / A-Durchsatz pro Datei zu ermitteln, außer innerhalb des Prozesses, der die Datei verwendet. Es gibt jedoch Möglichkeiten, den I/O-Durchsatz von Prozessen herauszufinden.
iotop - Es ist ein top/iftop-ähnliches Dienstprogramm, das den I/O-Durchsatz des Prozesses anzeigt.
Nachdem Sie festgestellt haben, welcher Prozess viele E/A-Vorgänge hat, verwenden Sie Folgendes, um herauszufinden, welche Datei verwendet wird
lsof -c <process name>
Das sollte den Umfang eingrenzen und helfen, die Quelle zu lokalisieren.
Sie können inotifywait
verwenden ab inotify-tools
um herauszufinden, in welche Datei genau geschrieben wird. Dies wird Ihnen nicht sagen, wie viele Daten geschrieben werden, aber es wird Ihnen zumindest sagen, in welche Dateien geschrieben wird, wenn es passiert.
Beispielsweise gibt dieser Befehl den Dateinamen aus, sobald Dateien in /tmp
erstellt, geändert oder gelöscht werden :
$ sudo inotifywait -e modify -e attrib -e move -e create -e delete -m -r /tmp
Setting up watches. Beware: since -r was given, this may take a while!
Watches established.
/tmp/ CREATE test
/tmp/ MODIFY test
Leider müssen Sie erraten, in welches Verzeichnis die Dateien geschrieben werden. Dies schlägt fehl, wenn Sie versuchen, es im Stammverzeichnis zu verwenden, obwohl dies anscheinend überschrieben werden kann:
$ sudo inotifywait -e modify -e attrib -e move -e create -e delete -m -r /
Setting up watches. Beware: since -r was given, this may take a while!
Failed to watch /; upper limit on inotify watches reached!
Please increase the amount of inotify watches allowed per user via `/proc/sys/fs/inotify/max_user_watches'.