Como posso saber o que está girando minha unidade?


8

Eu habilitei "spindown" em uma das unidades do meu servidor Linux, que é acessada apenas por um cliente BitTorrent - ou seja, quando não tenho torrents em execução, nada mais deve estar acessando o disco e despertando o spindown (certo? )

Mas algo está fazendo o disco girar a cada 15 minutos aproximadamente. Como posso rastrear o culpado não autorizado?

Obrigado por qualquer feedback!

Respostas:


8

Você pode conferir http://samwel.tk/laptop_mode/ . Embora esta página não seja principalmente sobre o seu problema, mas ofereça uma boa visão geral de como as IO funcionam e as idéias, como silenciar seus discos desligando-os.

A resposta curta para o seu problema:

eco 1> / proc / sys / vm / block_dump

produzirá mensagens no syslog como:

Jul 23 10:04:05 kernel locutus: ls (5224): bloco de leitura 7340136 no dm-4
Jul 23 10:04:05 kernel locutus: ls (5224): bloco de leitura 4335136 no dm-4
Jul 23 10:04:05 kernel locutus: ls (5224): bloco de leitura 15505568 no dm-4
Jul 23 10:04:05 kernel locutus: ls (5224): bloco de leitura 7340160 no dm-4
Jul 23 10:04:05 kernel locutus: ls (5224): bloco de leitura 7340168 no dm-4

Eu usei um simples comando ls

NOTA: verifique se o log do sistema foi desligado ou gravado em um ramdisk (tipo: tmpfs) antes de fazê-lo, porque (aspas): "seu sistema pode entrar em um loop de feedback, onde o syslogd causa atividade no disco, isso causa a saída do kernel, e isso faz com que o syslogd faça mais atividade no disco "

Eu recomendo montar / tmp como um ramdisk e configurar o log para / tmp / syslog. Isso no / etc / fstab (e uma reinicialização) fará:

nenhum / tmp tmpfs padrões, tamanho = 256M 0 0

9

No Linux, o fanotifysyscall recente-ish ativou um bom utilitário chamado fatraceque informa sobre qual processo está atingindo qual arquivo, para todo o sistema ou para uma partição específica. Definitivamente, minha ferramenta favorita para esse tipo de coisa:

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

Esta ferramenta é incrível! Para mim, acabou sendo inteligente girando a unidade, o que eu acho que faz sentido.
Alexander O'Mara 2/17

5

Eu tenho usado o iotop para descobrir o que está usando a unidade. No site, você deve ter "Linux kernel ≥ 2.6.20 com as opções TASK_DELAY_ACCT e TASK_IO_ACCOUNTING ativadas".

Parece que você está interessado apenas em uma unidade específica. Você pode escrever um script que verifique rotineiramente com lsof ou fusor o acesso a essa unidade / partição.


1

Se um processo estiver começando a gravar dados na unidade, você poderá descobrir isso verificando regularmente os arquivos abertos: lsof .

Caso contrário, você pode procurar com "free" se o arquivo de troca for usado ou não.


1

Você deve poder usar a auditoria do Linux para adicionar um monitor no ponto de montagem da unidade e monitorar os logs com uma pesquisa após o evento para descobrir de que arquivo foi lido ou gravado (se houver) e em qual processo a auditoria foi realizada. observe as leituras, gravações, execuções e alterações de atributos em qualquer sistema de arquivos (desde que seja compatível com o seu sistema - deve ser).


0

Talvez você possa usar o incron, que usa o inotify para iniciar comandos com base na atividade do sistema de arquivos. Você pode assistir ao ponto de montagem e usar o incron para acionar lsof para procurar qual processo está acessando.


0

O mais fácil de verificar o que está girando seu disco é:

vá para o diretório do disco montado, para mim foi / media / disk0 / transmission

então você executa: sudo fatrace -c

você terá a saída de qualquer coisa que atinja essa pasta; por exemplo, você pode fazer login com ssh e fazer um ls.

df (54956): bash de CO / media / disk1 (55025): bash de O / media / disk1 (55025): bash de RC / media / disk1 (55026): bash de O / media / disk1 (55026): RC / media / disk1

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.