Ouvir o disco rígido quando nada é suposto usá-lo

2

Às vezes, ouço o disco rígido funcionando fisicamente quando não é preciso usá-lo. Existe uma maneira de eu ver o que está ativando isso?

    
por ChiseledAbs 31.07.2016 / 16:56

4 respostas

2

Instale o pacote iotop . Esta é a versão do comando top que analisa a quantidade de ES que cada processo está usando.

    
por 31.07.2016 / 17:16
2

Você pode obter informações detalhadas do kernel (supondo que ele tenha sido configurado com CONFIG_FTRACE) usando iosnoop , um dos scripts da coleção Brendan Gregg de rastreamento e desempenho. Por exemplo:

$ sudo /opt/perf-tools-master/bin/iosnoop
Tracing block I/O. Ctrl-C to end.
COMM         PID    TYPE DEV      BLOCK        BYTES     LATms
chromium-bro 19962  R    8,0      21573632     16384      1.89
jbd2/sda3-41 416    WS   8,0      63562984     4096       2.00
kworker/1:1H 288    WS   8,0      129725080    32768      1.96
<idle>       0      WS   8,0      129725144    4096       0.39
jbd2/sda1-23 231    WS   8,0      8137984      4096       0.09
gawk         5839   WS   8,0      10314904     4096       0.35
jbd2/sda3-41 416    WS   8,0      173342200    4096       1.96
gawk         5839   WS   8,0      129725168    4096       0.33
emacs        9514   WS   8,0      132405432    65536      1.77
emacs        9514   WS   8,0      173343232    118784     1.77
...

Note também que os discos têm firmware que pode provocar atividade principal, por exemplo, fazendo algum tipo de verificação de realinhamento.

    
por 31.07.2016 / 17:30
2

O Ubuntu escreveu fatrace para essa finalidade.

Se você não consegue encontrá-lo com fatrace , e não há nenhum processo abrindo o nó do dispositivo diretamente ( lsof /dev/sd* ), é uma coisa do kernel.

Exemplo de erro no kernel: Disco rígido gira & volte novamente a cada 10 segundos; nenhum acesso mostrado em 'fatrace'

Uma coisa do kernel para estar ciente é o write-back periódico. Lembre-se de que o sistema de arquivos usa um cache write-back. Por padrão, as gravações não sincronizadas podem ficar na fila por 5 segundos antes de serem liberadas para o disco .

    
por 31.07.2016 / 17:24
2

A maioria dos discos rígidos modernos tem seus próprios controladores. Pode ser realmente o que for:

  • Um cache (no controlador de disco) gravado no armazenamento real
  • Regulação de velocidade para garantir que o disco gira na mesma velocidade o tempo todo.
  • O disco digitou standby ou sleep (alguns fazem isso automaticamente, outros não, embora isso seja configurável).
  • Ou um daemon real lendo / escrevendo de / para ele.

hdparm tem várias maneiras padrão, mais ou menos, de entender como um disco funciona, mas muitos dos recursos não são suportados por muitos discos . Algumas consultas úteis para um disco são:

  • hdparm -b /dev/<disk> : estado do BUS
  • hdparm -B /dev/<disk> : Informações de gerenciamento de energia (ele entrará no modo de espera automaticamente?)
  • hdparm -M /dev/<disk> : gerenciamento acústico (controle de velocidade, embora eu nunca tenha visto um único disco que suporte essa consulta hdparm )

Estes podem ser usados para verificar se o disco pode fazer algo por conta própria. Eles não podem dizer se o disco realmente fará isso, é uma decisão tomada pelo firmware dentro.

A última opção da minha enumeração anterior "um daemon real lendo / escrevendo de / para o disco" pode ser verificada com:

  1. Use hdparm -y /dev/<disk> para forçá-lo ao modo standby .
  2. Espere uma quantidade razoável de tempo (uma hora talvez).
  3. Use hdparm -C /dev/<disk> para verificar se ele permanece no modo standby .

Aviso: a grande maioria dos discos não suporta a maioria dos comandos hdparm (ATA / SATA). No entanto, eles geralmente apoiam pelo menos alguns deles. Sua milhagem pode variar significativamente.

    
por 31.07.2016 / 17:20