discos rígidos gerados por processos / aplicativos que simplesmente obtêm uma lista de discos? Como prevenir?

4

Eu tenho um servidor sem cabeçalho baseado em Debian Jessie 24/7 sempre disponível que tem um grande SSD de 1 TB para o sistema operacional e todos os meus arquivos acessados com frequência. Esse mesmo sistema tem 4 unidades de disco rígido maiores em um array SnapRAID. Eles são principalmente para arquivar Blu-rays acessados com pouca frequência e querem que essas unidades permaneçam em modo de espera, a menos que eu realmente as leia ou escreva. Eles são todos formatados como ext4 e montados com noatime e nodiratime ativados.

Portanto, mesmo que nenhum processo ou programa acesse essas unidades de maneira direta, os discos rígidos são constantemente retirados do modo de espera. Parece estar relacionado a programas gráficos que fornecem um navegador de arquivos GUI, até mesmo algo como o Chromium. Se eu nem sequer navegar nessas unidades, estou pensando que esses processos simplesmente obtendo uma lista de unidades disponíveis geram discos rígidos. Muito parecido com o blkid. O problema é que é difícil determinar a causa raiz disso, pois nenhum desses processos está lendo ou gravando o sistema de arquivos nessas unidades, portanto, nenhum arquivo está realmente mudando ou sendo tocado. Existe algum tipo de cache que eu possa preencher ou um buffer para impedir que esses programas girem o disco rígido simplesmente obtendo uma lista de discos disponíveis? Isso honestamente está me enlouquecendo, já que não consigo encontrar uma maneira confiável de manter esses discos desmembrados, mesmo que não haja acesso direto ao sistema de arquivos.

UPDATE : Graças à resposta de Stephen, consegui rastrear a atividade do disco para gvfs e udisks . É uma pena que esses processos insistam em despertar discos em standby quando eles não estão realmente sendo acessados para fazer qualquer E / S real com o sistema de arquivos. Até agora eu apenas os desinstalei, sabendo que isso removerá algumas funcionalidades do PCManFM e similares.

    
por onlinespending 04.04.2016 / 07:14

2 respostas

3

Você pode usar blktrace ( disponível no Debian) para rastrear toda a atividade em um determinado dispositivo; por exemplo

sudo blktrace -d /dev/sda -o - | blkparse -i -

ou apenas

sudo btrace /dev/sda

mostrará toda a atividade em /dev/sda . A saída parece

  8,0    3       51   135.424002054 16857  D  WM 167775248 + 8 [kworker/u16:0]
  8,0    3       52   135.424011323 16857  I  WM 209718336 + 8 [kworker/u16:0]
  8,0    3        0   135.424011659     0  m   N cfq496A  / insert_request

A quinta coluna é o identificador do processo, e a última dá o nome do processo quando existe um.

Você também pode armazenar rastreios para análise posterior; blktrace inclui várias ferramentas de análise, como as acima mencionadas blkparse e btt . blktrace é uma ferramenta de muito baixo nível, então pode não ser tão fácil descobrir o que causou a atividade em primeiro lugar, mas com a ajuda da documentação incluída (veja /usr/share/doc/blktrace se você instalou o pacote Debian) e o blktrace paper deve ser possível descobrir o que está causando os altos e baixos.

    
por 04.04.2016 / 11:43
0

Tente strace.

strace -f -e open ls

O comando acima deve listar toda a atividade do disco relacionada aos métodos open , os quais você suspeita serem responsáveis por causar seus spinups de disco.

Como alternativa, dmesg pode fornecer algumas informações sobre montagens / desmontagens de disco físico.

Este site tem um bom guia sobre como usar strace para monitorar a atividade do disco .

Quanto a preencher um cache para interromper o disco IO, duvido que isso seja possível, mas posso estar errado.

    
por 04.04.2016 / 10:25

Tags