GNU/Linux >> Linux Esercitazione >  >> Linux

Come posso sapere cosa sta facendo girare il mio disco?

In Linux, il recente fanotify syscall ha abilitato una simpatica utility chiamata fatrace che informa su quale processo sta colpendo quale file per l'intero sistema o per una particolare partizione. 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

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

La risposta breve al tuo problema:

echo 1 > /proc/sys/vm/block_dump

produrrà messaggi in syslog come:

Jul 23 10:04:05 locutus kernel: ls(5224): READ block 7340136 on dm-4
Jul 23 10:04:05 locutus kernel: ls(5224): READ block 4335136 on dm-4
Jul 23 10:04:05 locutus kernel: ls(5224): READ block 15505568 on dm-4
Jul 23 10:04:05 locutus kernel: ls(5224): READ block 7340160 on dm-4
Jul 23 10:04:05 locutus kernel: ls(5224): READ block 7340168 on dm-4

Ho usato un semplice comando ls

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

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

none /tmp tmpfs defaults,size=256M 0 0

Ho usato iotop per capire cosa sta usando l'unità. Dal sito web devi avere "Linux kernel ≥ 2.6.20 con le opzioni TASK_DELAY_ACCT e TASK_IO_ACCOUNTING abilitate".

Sembra che tu sia interessato solo a un disco in particolare. Potresti considerare di scrivere uno script che controlla regolarmente con lsof o fuser l'accesso a quell'unità/partizione.


Linux
  1. Come posso sapere se mi trovo su uno schermo?

  2. Come può un kernel Linux essere così piccolo?

  3. Come posso clonare il mio intero sistema operativo su una chiavetta USB avviabile?

  4. Quanti core può gestire il kernel Linux?

  5. Come posso sapere quale versione di Linux sto usando?

Come verificare quale versione del kernel Linux sto utilizzando

Come posso disabilitare il pulsante della mia unità CD/DVD?

Come posso sapere in quale limite di utenti mi sto imbattendo?

Linux - Come posso vedere cosa sta aspettando l'IO del disco

Come posso sapere quali processi stanno causando carichi elevati se non sono un utilizzo elevato della CPU?

Come faccio a sapere quale processo sta causando l'uso di kswapd?