Wie kann ich feststellen, was mein Laufwerk in Schwung bringt?

8

Ich habe "Spindown" auf einem der Laufwerke meines Linux-Servers aktiviert, auf das nur ein BitTorrent-Client zugreift. Wenn also keine Torrents ausgeführt werden, sollte nichts anderes auf die Festplatte zugreifen und sie aus Spindown aufwecken (richtig? ).

Aber irgendetwas lässt die Festplatte etwa alle 15 Minuten hochfahren. Wie kann ich den Schurken-Täter aufspüren?

Vielen Dank für jedes Feedback!

Bruno Antunes
quelle

Antworten:

8

Sie können http://samwel.tk/laptop_mode/ überprüfen . Diese Seite befasst sich zwar nicht in erster Linie mit Ihrem Problem, bietet jedoch ein gutes Gesamtbild der Funktionsweise und Ideen von E / A und der Stummschaltung Ihrer Festplatten durch Ausschalten.

Die kurze Antwort auf Ihr Problem:

Echo 1> / proc / sys / vm / block_dump

Es werden Nachrichten in Syslog wie folgt erzeugt:

23. Juli 10:04:05 locutus kernel: ls (5224): LESEN Sie Block 7340136 auf dm-4
23. Juli 10:04:05 locutus kernel: ls (5224): LESEN Sie Block 4335136 auf dm-4
23. Juli 10:04:05 locutus kernel: ls (5224): LESEN Sie Block 15505568 auf dm-4
23. Juli 10:04:05 locutus kernel: ls (5224): LESEN Sie Block 7340160 auf dm-4
23. Juli 10:04:05 locutus kernel: ls (5224): LESEN Sie Block 7340168 auf dm-4

Ich habe einen einfachen ls-Befehl verwendet

ANMERKUNG: Stellen Sie sicher, dass Ihre Systemprotokollierung deaktiviert oder auf eine Ramdisk (Typ: tmpfs) geschrieben ist, da (Zitat): "Ihr System kann in eine Rückkopplungsschleife geraten, in der syslogd Festplattenaktivität verursacht. Dies führt zur Kernelausgabe. und dies führt dazu, dass syslogd mehr Festplattenaktivität ausführt. "

Ich empfehle, / tmp als Ramdisk zu mounten und dann die Protokollierung in / tmp / syslog einzurichten. Dies in / etc / fstab (und ein Neustart) reicht aus:

none / tmp tmpfs Standard, Größe = 256M 0 0
asdmin
quelle
9

Unter Linux hat der aktuelle fanotifySystemaufruf ein nettes Dienstprogramm namens aufgerufen fatrace, das darüber informiert, welcher Prozess welche Datei entweder für das gesamte System oder für eine bestimmte Partition trifft. Auf jeden Fall mein Lieblingswerkzeug für solche Dinge:

deluged(6542): R /usr/share/GeoIP/GeoIP.dat
rsyslogd(1737): W /var/log/syslog
rsyslogd(1737): W /var/log/kern.log
Skomorokh
quelle
Dieses Tool ist fantastisch! Für mich stellte sich heraus, dass es klug war, das Laufwerk hochzufahren, was meiner Meinung nach Sinn macht.
Alexander O'Mara
5

Ich habe iotop verwendet, um herauszufinden, was das Laufwerk verwendet. Auf der Website muss "Linux-Kernel ≥ 2.6.20 mit aktivierten Optionen TASK_DELAY_ACCT und TASK_IO_ACCOUNTING" aktiviert sein.

Es hört sich so an, als wären Sie nur an einem bestimmten Laufwerk interessiert. Sie können ein Skript schreiben, das routinemäßig mit lsof oder fuser nach dem Zugriff auf dieses Laufwerk / diese Partition sucht.

Scham
quelle
1

Wenn ein Prozess beginnt, Daten auf das Laufwerk zu schreiben, können Sie dies herausfinden, indem Sie regelmäßig die geöffneten Dateien überprüfen: lsof .

Andernfalls könnten Sie mit "frei" suchen, ob die Auslagerungsdatei verwendet wird oder nicht.

Raffael Luthiger
quelle
1

Sie sollten in der Lage sein, mithilfe der Linux- Überwachung eine Überwachung des Mountpunkts des Laufwerks hinzuzufügen und dann die Protokolle nach dem Ereignis mit ausearch zu überwachen, um herauszufinden, aus welcher Datei (falls vorhanden) eine Datei gelesen oder geschrieben wurde und welchen Prozess dies bei der Prüfung durchgeführt hat Achten Sie auf Lese-, Schreib-, Ausführungs- und Attributänderungen in jedem Dateisystem (sofern dies auf Ihrem System unterstützt wird - sollte es sein).

JamesHannah
quelle
0

Vielleicht könnten Sie incron verwenden, das inotify verwendet, um Befehle basierend auf der Dateisystemaktivität zu starten. Sie könnten dann möglicherweise den Einhängepunkt beobachten und mit incron lsof auslösen, um zu suchen, auf welchen Prozess zugegriffen wird.

Kyle Brandt
quelle
0

Es ist einfach zu überprüfen, was Ihre Festplatte dreht:

Gehen Sie in das Verzeichnis der gemounteten Festplatte, für mich war / media / disk0 / Transmission

dann führen Sie aus: sudo fatrace -c

Sie haben die Ausgabe von allem, was auf diesen Ordner trifft. Sie können sich beispielsweise mit ssh anmelden und ein ls ausführen.

df (54956): CO / media / disk1-Bash (55025): O / media / disk1-Bash (55025): RC / media / disk1-Bash (55026): O / media / disk1-Bash (55026): RC / media / disk1


quelle