Come posso sapere cosa sta facendo girare il mio disco?


8

Ho abilitato "spindown" su una delle unità del mio server Linux, a cui accede solo un client BitTorrent - il che significa che quando non ho torrent in esecuzione, nient'altro dovrebbe accedere al disco e svegliarlo da spindown (giusto? ).

Ma qualcosa sta facendo girare il disco ogni 15 minuti circa. Come posso rintracciare il colpevole criminale?

Grazie per qualsiasi feedback!

Risposte:


8

Puoi dare un'occhiata a http://samwel.tk/laptop_mode/ . Sebbene questa pagina non riguardi principalmente il tuo problema, ma fornisca una buona immagine generale di come funziona IO e idee, come silenziare i tuoi dischi spegnendoli.

La risposta breve per il tuo problema:

echo 1> / proc / sys / vm / block_dump

produrrà messaggi in syslog come:

23 lug 10:04:05 locutus kernel: ls (5224): LEGGI il blocco 7340136 su dm-4
23 lug 10:04:05 locutus kernel: ls (5224): LEGGI il blocco 4335136 su dm-4
23 lug 10:04:05 locutus kernel: ls (5224): LEGGI il blocco 15505568 su dm-4
23 lug 10:04:05 locutus kernel: ls (5224): LEGGI il blocco 7340160 su dm-4
23 lug 10:04:05 locutus kernel: ls (5224): LEGGI il blocco 7340168 su dm-4

Ho usato un semplice comando ls

NOTA: assicurati che la tua registrazione di sistema sia spenta o scritta su un ramdisk (tipo: tmpfs) prima di farlo, perché (quote): "il tuo sistema potrebbe entrare in un ciclo di feedback, dove syslogd causa attività del disco, questo provoca l'output del kernel, e questo fa sì che syslogd faccia più attività sul disco "

Consiglio di montare / tmp come ramdisk e quindi di impostare la registrazione su / tmp / syslog. Questo in / etc / fstab (e un riavvio) farà:

nessuna / tmp tmpfs valori predefiniti, dimensione = 256 M 0 0

9

In Linux, la fanotifysyscall recente ha abilitato una bella utility chiamata fatraceche informa su quale processo sta colpendo quale file per l'intero sistema o una partizione particolare. Sicuramente il mio strumento preferito per questo genere di cose:

deluged(6542): R /usr/share/GeoIP/GeoIP.dat
rsyslogd(1737): W /var/log/syslog
rsyslogd(1737): W /var/log/kern.log

Questo strumento è fantastico! Per me, si è rivelato essere smartd che fa girare il disco, il che credo abbia senso.
Alexander O'Mara,

5

Ho usato iotop per capire cosa sta usando l'unità. Dal sito Web è necessario avere "Kernel Linux ≥ 2.6.20 con le opzioni TASK_DELAY_ACCT e TASK_IO_ACCOUNTING abilitate".

Sembra che tu sia solo interessato a una determinata unità. Potresti considerare di scrivere uno script che controlli regolarmente con lsof o fuser per l'accesso a quell'unità / partizione.


1

Se un processo sta iniziando a scrivere dati sull'unità, è possibile scoprirlo controllando regolarmente i file aperti: lsof .

Altrimenti potresti cercare "gratis" se il file di scambio viene utilizzato o meno.


1

Dovresti essere in grado di utilizzare il controllo Linux per aggiungere un watch sul mountpoint dell'unità, quindi monitorare i log con ausearch dopo l'evento per scoprire da quale file è stato letto o scritto (se presente) e quale processo ha fatto, il controllo può guardare per leggere, scrivere, eseguire e modificare gli attributi su qualsiasi filesystem (purché sia ​​supportato sul proprio sistema - dovrebbe essere).


0

Forse potresti usare incron che usa inotify per lanciare comandi basati sull'attività del file system. È quindi possibile osservare il punto di montaggio e utilizzare incron per attivare lsof per cercare il processo a cui accede.


0

La cosa facile da controllare cosa sta facendo girare il tuo disco è:

vai nella directory del disco montato, per me era / media / disk0 / trasmissione

quindi esegui: sudo fatrace -c

avrai l'output di tutto ciò che colpisce quella cartella, ad esempio puoi accedere con ssh e fare un ls.

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.