Queda de desempenho de E / S maciça e imprevisível no Linux

11

Estou usando o teste Debian sem problemas por ~ 6 anos (estou atualizando-o regularmente), mas recentemente ele começou a mostrar um comportamento aleatório que pode ser resumido como "Baixo desempenho de E / S que persiste até a reinicialização".

O problema é que, repentinamente, todas as leituras e gravações do disco diminuem para ~ 5 MB / s, o que resulta em leituras e gravações contínuas. Como a taxa é muito baixa, os discos não são desafiados nem estressados ​​mecanicamente, mas tudo fica mais lento até eu reiniciar.

O subsistema de E / S do computador consiste em um SSD OCZ Vertex 3 e dois HDDs WD Caviar Black. O SSD mantém parte do sistema operacional com muita leitura e uma partição no disco rígido mantém o resto.

Para diagnosticar o problema, tentei o seguinte sem êxito:

  • top não mostra nenhuma atividade descontrolada nem na CPU nem no uso de E / S.
  • hdparmretorna classificações de desempenho normais dos discos (só verifiquei -t).
  • smartctlnão mostra nenhum problema de desempenho em discos. Testes longos mostraram que os discos são tão bons quanto os novos.

O sistema possui Z77 Chipset, 16 GB de RAM e CPU Intel i7 3770K e as estatísticas não mostram sinais de saturação na RAM, E / S ou CPU, mas não tenho experiência em depurar problemas como este (especialmente no espaço do kernel). Qualquer ajuda será apreciada.

Atualização 1:

  • Executei o fsck (forçado) em todas as partições por precaução. Todos os FS estão limpos.
  • Aliás, encontrei uma atualização do BIOS lançada há um mês e aplicada.
  • Nenhuma partição é preenchida mais de 50%.

Atualização 2:

O problema não está aparecendo por dois dias. A fsckatualização do BIOS limpou alguns obstruções no sistema. Ainda estou monitorando o problema e fecharei a pergunta com uma resposta post mortem.

Atualização 3:

Problema apenas ressurgiu e eu fiz mais algumas escavações. Por favor, veja a resposta.

bayindirh
fonte
1
poderia ser um problema de fragmentação atop, informando o quanto os discos estão ocupados (como ao procurar o tempo todo).
Stéphane Chazelas
1
Apenas para descartar algumas peculiaridades, desative o NCQ e defina o planejador de E / S como noop.
Frostschutz
1
O "baixo desempenho de E / S que persiste até a reinicialização" pode ser um dispositivo quebrado / com bugs que apreende o barramento com muita freqüência por muito tempo, o que é irritantemente difícil de diagnosticar antes da troca de hardware.
quer tocar
1
Então, a próxima coisa na minha lsit a verificação seria verificar os logs de erros e verifique que há muita memória alocada para buffers / cache (ver a saída de free)
symcbean
1
Você poderá ver iowaitetc. se estiver coletando dados sar. Eu ativaria sysstatse ainda não estiver em execução. Você pode verificar se a sar -Amaioria das plataformas possui intervalos de amostra de dez minutos.
Bratchley

Respostas:

12

Consegui reproduzir o problema novamente e foi o resultado de um grande cache de disco. Meus caches de disco podem crescer mais de 8 GB e parece que alguns aplicativos não gostam e a E / S sofre.

A eliminação de caches de disco com a echo 3 > /proc/sys/vm/drop_cachesraiz soluciona o problema. Atualmente, não sei por que caches de disco grandes causam essa degradação de E / S.

Última atualização: Após mais investigação, descobri que o número de arquivos no cache estava causando o problema. Ele estava na lixeira dos discos ao tentar confirmar muitos arquivos pequenos no disco. Desde que eu estava usando o sistema por dez anos, tomei a iniciativa e reinstalei com o Debian de 64 bits. Agora está funcionando sem problemas. Provavelmente, foi um efeito colateral de dez anos de atualização com a descoberta de limites do sistema operacional de 32 bits.

bayindirh
fonte
2

Há alguma mensagem suspeita dmesg?

Mais algumas ferramentas que você pode tentar obter algumas idéias sobre os gargalos do seu sistema:

  • dstat
  • latencytop
  • sysprof
Elias Probst
fonte
Nada suspeito em nenhum registro. TBH nenhuma entrada de log relacionada a esse problema. Vou tentar as ferramentas, no entanto. Não deve haver um gargalo em um PC high-end enquanto estiver ocioso sem que nada esteja sendo executado. Acho que um cache ou algo relacionado ao subsistema de E / S dá errado.
bayindirh
... e iotop, fio
symcbean