Como posso evitar que a E / S do disco assuma a minha CPU?

6

Eu rodei o Debian Jessie em um processador quad-core i7, que resulta em 8 núcleos sendo mostrados graças ao hyperthreading. Em cargas pesadas em disco, todos os oito núcleos são maximizados com io-wait, conforme mostrado pelo htop. Isso resulta em uma interface muito lenta (eu uso o Gnome), e o sistema às vezes congela completamente até que a E / S esteja completa.

Como devo diagnosticar isso? Quais configurações posso ajustar para evitar que isso ocorra?

Eu uso um único HDD, e um cheque S.M.A.R.T mostra que é saudável.

Edit: Para esclarecer algumas coisas, não estou interessado em acelerar o I / O. Eu gostaria de tê-lo rodando em segundo plano enquanto faço outra coisa. Atualizar para um SSD não é uma opção para mim.

    
por RandomBK 26.10.2014 / 00:43

1 resposta

2

Existem várias maneiras de ajustar o desempenho de E / S.

  • escolha do sistema de arquivos - escolha um sistema de arquivos dependendo de como são seus dados típicos - alguns sistemas de arquivos lidam melhor com muitos arquivos menores, alguns fazem bem para arquivos grandes, alguns não escalam bem ao acessar (especialmente criando) vários arquivos de uma só vez. A desfragmentação pode ajudar nas unidades de placas giratórias (não tanto em dispositivos baseados em flash, mas a diferença ainda deve estar lá).

  • ajustes no sistema de arquivos - os sistemas de arquivos modernos têm muitas opções (tanto criação quanto tempo de montagem) que empurram o desempenho do sistema de arquivos em uma direção ou outra. O primeiro exemplo pode ser como o journalling é feito.

  • Configuração de DMA - embora isso tenha sido feito de forma automática desde as idades, nunca é demais verificar ( hdparm -i é seu amigo aqui).

Linux especificamente (mas pode ser semelhante para outros kernels também):

  • THP - Páginas enormes e transparentes usadas para causar degradação do desempenho. IIRC o problema foi corrigido (pelo menos até certo ponto) há algum tempo atrás. Se copiar para / de USB for o problema, você provavelmente deve procurar nessa direção. As desativam as páginas de abraços transparentes podem servir como um bom ponto de partida para desativar o THP.

  • O
  • programador de E / S do kernel pode influenciar bastante o desempenho. Algumas pessoas defendem o uso do escalonador do Prazo Final sobre o CFQ, que é mais complexo e, às vezes, supostamente tende a pensar demais sobre as coisas.

Além disso, em alguns cenários, a I / O pesada simplesmente acontece. Quando você começa a copiar arquivos do leitor de cartão de memória USB para o disco rígido, do disco rígido para um disco flash USB, navega na web (alguns navegadores podem ser fsync() pesados para garantir que as coisas são recuperáveis em caso de falha) , execute um cliente P2P e reproduza um filme todos ao mesmo tempo, o disco físico e o sistema de arquivos vão se tornar o gargalo. Em alguns casos, um cuidadosamente construído (leia com tamanho de faixa apropriado e número de drives constituintes), o RAID0 pode ajudar a aliviar o problema.

    
por 26.10.2014 / 01:21