it-swarm.com.de

Wie finde ich heraus, welcher Prozess regelmäßig auf die Festplatte schreibt?

Wie kann ich herausfinden, welcher Prozess ständig auf die Festplatte schreibt?

Ich mag es, wenn meine Workstation fast geräuschlos ist, und ich baue gerade ein neues System (P8B75-M + Core i5 3450s - das 's', weil es eine niedrigere maximale TDP hat) mit leisen Lüftern usw. und installiere Debian Wheezy 64-Bit darauf.

Und etwas geht mir auf die Nerven: Ich kann ein Muster hören, als ob die Festplatte etwas geschrieben oder gesucht hätte (tick ... tick ... tick ... trrrrrr spülen und jedes wiederholen Sekunde oder so).

In der Vergangenheit hatte ich ein ähnliches Problem in der Vergangenheit (vor vielen, vielen Jahren) und es stellte sich heraus, dass es sich um ein CUPS-Protokoll oder etwas anderes handelte, und ich habe dieses eine (nicht wichtige) Protokoll einfach zu einem (echten) umgeleitet RAM Festplatte.

Aber hier bin ich mir nicht sicher.

Ich habe folgendes versucht:

ls -lR /var/log > /tmp/a.tmp && sleep 5 && ls -lR /var/log > /tmp/b.tmp && diff /tmp/?.tmp

aber dort ändert sich nichts.

Das Seltsame ist nun, dass ich das Muster auch höre, wenn die Eingabeaufforderung, die mich auffordert, meine Passphrase für die LVM-Entschlüsselung einzugeben, angezeigt wird.

Könnte es etwas in dem Kernel/System sein, das ich gerade installiert habe, oder habe ich eine fehlerhafte Festplatte?

hdparm -tT /dev/sda eine korrekte HD-Geschwindigkeit melden (130 GB/s, nicht zwischengespeichert, sata 6 GB) und ich habe bereits ohne Probleme große Quellen (Emacs) installiert und kompiliert, sodass ich das System nicht für schlecht halte.

(HD ist ein Seagate Barracude 500GB)

44
Cedric Martin

Haben Sie versucht zu untersuchen, welche Programme wie iotop angezeigt werden? Hier erfahren Sie genau, welche Art von Prozess gerade auf die Festplatte schreibt.

beispielausgabe:

Total DISK READ: 0.00 B/s | Total DISK WRITE: 0.00 B/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND
    1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % init
    2 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kthreadd]
    3 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/0]
    6 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [migration/0]
    7 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [watchdog/0]
    8 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [migration/1]
 1033 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [flush-8:0]
   10 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/1]
43
mnmnc

Sie können IO Debugging über echo 1 > /proc/sys/vm/block_dump) Aktivieren und dann die Debugging-Meldungen in / var/log/syslog ansehen. Dies hat den Vorteil, dass Sie einen Typ erhalten der Protokolldatei mit früheren Aktivitäten, während iotop nur die aktuelle Aktivität anzeigt.

15
scai

Angenommen, die Festplattengeräusche sind auf einen Prozess zurückzuführen, der einen Schreibvorgang verursacht, und nicht auf ein Problem mit dem Festplattenspindown , können Sie das Audit-Subsystem (Installieren Sie das auditd package ). Beobachten Sie die Anrufe von sync und ihre Freunde:

auditctl -S sync -S fsync -S fdatasync -a exit,always

Beobachten Sie die Protokolle in /var/log/audit/audit.log. Achten Sie darauf, dies nicht zu tun, wenn die Überwachungsprotokolle selbst gelöscht werden! Überprüfen Sie in /etc/auditd.conf, Dass die Option flush auf none gesetzt ist.

Wenn Dateien häufig gelöscht werden, sind die Systemprotokolle wahrscheinlich ein Schuldiger. Wenn Sie beispielsweise fehlgeschlagene eingehende Verbindungsversuche protokollieren und jemand Ihren Computer prüft, werden viele Einträge generiert. Dies kann dazu führen, dass eine Festplatte Maschinengewehrgeräusche abgibt. Aktivieren Sie mit dem grundlegenden Protokolldämon sysklogd /etc/syslog.conf: Wenn einem Protokolldateinamen nicht - Vorangestellt ist, wird dieses Protokoll nach jedem Schreibvorgang auf die Festplatte geschrieben.

Möglicherweise werden Ihre Laufwerke automatisch heruntergefahren. Viele Laufwerke für Endverbraucher tun dies heutzutage. Leider führt dies selbst auf einem leicht ausgelasteten System dazu, dass sich die Laufwerke ständig herunterfahren und dann wieder hochfahren, insbesondere wenn Sie hddtemp oder ähnliches ausführen, um die Laufwerkstemperatur zu überwachen (die meisten Laufwerke lassen Sie dummerweise nicht SMART Temperaturwert ohne Hochfahren des Laufwerks - kretinös!).

Dies ist nicht nur ärgerlich, es kann auch die Laufwerke schneller abnutzen, da viele Laufwerke nur eine begrenzte Anzahl von Parkzyklen haben. z.B. Eine Beschreibung des Problems finden Sie unter https://bugs.launchpad.net/ubuntu/+source/hdparm/+bug/952556 .

Ich deaktiviere Idle-Spindown auf allen meinen Laufwerken mit dem folgenden Bit Shell-Code. Sie können es in ein Skript /etc/rc.boot oder in /etc/rc.local oder ähnlichem einfügen.

 für Festplatte in/dev/sd? ;; do 
/sbin/hdparm -q -S 0 "$ disk" 
 erledigt 
4
cas

Sie können ein bisschen darüber wackeln. Sollte es für die meisten eingrenzen.

find / -mount -newer /proc -print

Geben Sie Dateien an, die seit dem Start auf dem physischen Gerät des/files-Systems geändert wurden. Wenn Sie die Dateien kennen, können Sie wahrscheinlich den Verfasser identifizieren.

2
user190618

Ich habe gerade festgestellt, dass s.m.a.r.t dazu führte, dass sich auf meinem Raspberry Pi immer wieder ein externes USB-Laufwerk drehte. Obwohl SMART im Allgemeinen eine gute Sache ist, habe ich beschlossen, es wieder zu deaktivieren, und seitdem scheint es, dass unerwünschte Festplattenaktivitäten aufgehört haben

1
jro

Falls Sie es auf eine genaue Festplatte eingrenzen müssen, verwenden Sie Folgendes:

führen Sie lsblk aus und suchen Sie die Gerätenummer. Im folgenden Fall ist es 9:126

NAME        MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda           8:0    0   7.3T  0 disk  
└─md126       9:126  0  13.8T  0 raid0 /mnt/InternalPhase
sdb           8:16   0   7.3T  0 disk  
└─md126       9:126  0  13.8T  0 raid0 /mnt/InternalPhase
sdc           8:32   0   7.3T  0 disk  
└─sdc1        8:33   0   7.3T  0 part  /mnt/InternalFBE

lauf lsof | grep '9,126' mit dem : ersetzen mit , im Vergleich zur obigen Plattennummer. In meinem Fall zeigt sich Folgendes:

bash      389162            root  cwd       DIR              9,126      4096  449183796 /mnt/InternalPhase/0000000001/CHANNEL01/LIVE/PHASE/DATA/2018/10/04

mit der PID von 389162 Beende diesen Prozess mit:

kill -9 389162
1