GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Ich habe einen hohen IO-Wert. Hoch schreibt. Aber welche Dateien werden geschrieben?

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'.

Linux
  1. Große Dateien finden und entfernen, die geöffnet sind, aber gelöscht wurden?

  2. Linux – Bestimmung einer bestimmten Datei, die für hohe E/A verantwortlich ist?

  3. N entspricht Top, aber für Netzwerk-E/A?

  4. Was sind .run-Dateien?

  5. Was sind Sparse-Dateien in Linux?

Linux – Was sind High Memory und Low Memory unter Linux?

7zip, Xz, Gzip, Tar usw. — Was sind die Unterschiede?

Konfigurieren Sie Flash-Laufwerke in High-I/O-Instanzen als Datenlaufwerke

Finden Sie heraus, welche Dateien sich in einem Paket in Ubuntu befinden

Shell-Befehle sind in welcher Sprache geschrieben?

Was genau sind Linux-Kernel-Header?