Wie finde ich heraus, welcher Prozess ständig auf die Festplatte schreibt?
Ich mag es, wenn meine Workstation fast lautlos 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 eine Art Muster hören, als würde die Festplatte schreiben oder nach etwas suchen ( tick ... tick ... tick ... trrrrr spülen und ungefähr jede Sekunde wiederholen).
In der Vergangenheit hatte ich ein ähnliches Problem (vor vielen, vielen Jahren) und es stellte sich heraus, dass es sich um ein CUPS-Protokoll oder ähnliches handelte. Ich leitete dieses eine (nicht wichtige) Protokoll einfach auf eine (echte) RAM-Festplatte um.
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 da ändert sich nichts.
Das Seltsame ist nun, dass ich das Muster auch höre, wenn die Eingabeaufforderung zur Eingabe meiner LVM-Entschlüsselungs-Passphrase 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
berichte eine korrekte HD-Geschwindigkeit (130 GB / s, nicht zwischengespeichert, sata 6 GB) und ich habe bereits ohne Probleme große Quellen (Emacs) installiert und kompiliert, sodass ich nicht denke, dass das System schlecht ist.
(HD ist ein Seagate Barracude 500 GB)
Antworten:
Haben Sie versucht zu untersuchen, welche Programme angezeigt werden
iotop
? Hier erfahren Sie genau, welche Art von Prozess gerade auf die Festplatte schreibt.Beispielausgabe:
quelle
iotop -o -b -d 10
dass alle 10 Sekunden eine Liste der Prozesse gedruckt wird, die gelesen / auf die Festplatte geschrieben wurden, sowie die Menge der verwendeten IO-Bandbreite.Sie können das IO-Debugging über aktivieren
echo 1 > /proc/sys/vm/block_dump
und anschließend die Debugging-Meldungen in / var / log / syslog anzeigen . Dies hat den Vorteil, dass eine Art Protokolldatei mit früheren Aktivitäten abgerufen wird, währendiotop
nur die aktuelle Aktivität angezeigt wird.quelle
Unter der Annahme , dass die Plattengeräusche auf ein Verfahren zurückzuführen sind , was zu einer Schreib- und nicht auf irgendeine Festplatte Spindown Problem , können Sie das verwenden Audit - Subsystem (installieren Sie das
auditd
Paket ). Beobachten Sie diesync
Anrufe und ihre Freunde:Beobachten Sie die Logs
/var/log/audit/audit.log
. Achten Sie darauf, dies nicht zu tun, wenn die Überwachungsprotokolle selbst gelöscht werden! Stellen Sie sicher,/etc/auditd.conf
dass dieflush
Option auf eingestellt istnone
.Wenn Dateien häufig gelöscht werden, liegt dies wahrscheinlich an den Systemprotokollen. 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 Geräusche im Maschinengewehrstil ausgibt. Überprüfen Sie mit dem Basisprotokolldämon sysklogd Folgendes
/etc/syslog.conf
: Wenn vor einem Protokolldateinamen kein Name steht-
, wird dieses Protokoll nach jedem Schreibvorgang auf die Festplatte geschrieben.quelle
Möglicherweise werden Ihre Laufwerke automatisch heruntergefahren. Heutzutage tun dies viele Consumer-Laufwerke. Leider führt dies auch auf einem schwach ausgelasteten System dazu, dass die Laufwerke ständig herunter- und dann wieder hochfahren, insbesondere, wenn Sie zur Überwachung der Laufwerkstemperatur hddtemp oder ähnliches ausführen (die meisten Laufwerke lassen Sie dummerweise nicht den SMART-Temperaturwert abfragen ohne das Laufwerk hochzufahren - kretinös!).
Dies ist nicht nur ärgerlich, sondern kann die Laufwerke auch schneller verschleißen, da viele Laufwerke nur eine begrenzte Anzahl von Parkzyklen haben. Eine Beschreibung des Problems finden Sie beispielsweise unter https://bugs.launchpad.net/ubuntu/+source/hdparm/+bug/952556 .
Ich deaktiviere Idle-Spindown auf allen meinen Laufwerken mit dem folgenden Shell-Code. Sie können es in ein /etc/rc.boot-Skript oder in /etc/rc.local oder ähnliches einfügen.
quelle
Ich habe gerade festgestellt, dass Smart dazu führte, dass ein externer USB-Datenträger auf meinem Himbeer-Pi immer wieder hochfuhr. Obwohl SMART im Allgemeinen eine gute Sache ist, habe ich mich entschlossen, es wieder zu deaktivieren, und seitdem scheint es, dass die unerwünschte Festplattenaktivität aufgehört hat
quelle
Darauf kannst du dich ein bisschen einlassen. Sollte es für die meisten einschränken.
Geben Sie Dateien, die seit dem Start geändert wurden, auf dem physischen Gerät des / files-Systems an. Wenn Sie die Dateien kennen, können Sie den Schreiber leichter identifizieren.
quelle
Wenn Sie es auf eine exakte Festplatte beschränken müssen, gehen Sie wie folgt vor:
laufen
lsblk
und suchen Sie die Gerätenummer. Im folgenden Fall ist es9:126
Laufen Sie
lsof | grep '9,126'
mit dem:
Ersetzen mit im,
Vergleich zu der oben genannten Datenträgernummer. In meinem Fall sieht das so aus:mit der PID von
389162
töte diesen Prozess mit:quelle
Das Problem ist, dass das System standardmäßig alle 5 Sekunden Daten aus den Festplattenpuffern auf die Festplatte leeren muss. Wenn die Festplatte herunterfährt, gibt es keine andere Möglichkeit, als die Festplatte erneut hochzufahren, wenn ein Flush erfolgen muss. Das Problem ist also nicht wirklich vermeidbar, außer durch Deaktivieren von Spinsdowns oder Festplatten-Energieverwaltungsfunktionen insgesamt
hdparm -B 255 /dev/hdax
. Dies ist wahrscheinlich die bessere Option, da ein Neustart so oft Schaden anrichten kann, als einfach die ganze Zeit durchzubleiben.quelle