Ubuntu - desempenho inconsistente com o software raid-1

0

Estou instalando um novo sistema usando soft-raid 1 com dois discos físicos. Ao executar alguns testes (depois de esperar pela conclusão da sincronização inicial), descobri que a velocidade do disco rígido era altamente inconsistente.

Meu teste foi muito simples: copiar um gig de jpegs usando cp -r e depois excluí-los e verificar quanto tempo demorou.

for i in {1..5} ; do
  echo ".. start run $i"
  time cp -r public public2

  echo "... deleting duplicate"
  time rm -rf public2

  sleep 1
done

Ocasionalmente, durante todo o teste, o processo parece "travar" brevemente, não responde a ^ C e (como visto nos resultados abaixo) causa um atraso de dezenas de segundos; os principais relatórios "Aguardando E / S" em em qualquer lugar de 20% a 70% neste momento e o console se torna lento, até mesmo sem resposta.

Estes foram os resultados com cerca de 1 gig de imagens jpg:

        copy       delete
run 1   1.336s     35.929s
run 2   2.300s     50.737s
run 3   2.358s     26.562s
run 4   0.971s     23.717s
run 5   17.485s    27.074s

As velocidades variam nitidamente. Eu corri este conjunto de 5 testes um monte de vezes e eles ocorrem a cada vez, embora não necessariamente nas mesmas execuções. Nos resultados exibidos, os atrasos ocorreram com maior frequência durante a exclusão, mas isso também varia.

Outra tentativa, algum tempo depois, com um conjunto de dados menor (~ 600MB):

        copy       delete
run 1   11.614s    36.403s
run 2   0.630s     0.208s
run 3   0.652s     14.891s
run 4   0.676s     0.192s
run 5   0.640s     0.213s

Com um conjunto menor, os atrasos ocorrem com muito menos frequência, muitas vezes passando todas as 5 execuções sem qualquer atraso.

Mais uma tentativa com um conjunto de dados maior, cerca de 1,5 GB:

        copy       delete
run 1   26.687s    22.336s
run 2   38.336s    22.466s
run 3   44.711s    20.473s
run 4   41.269s    22.721s
run 5   41.592s    26.499s

Aqui o atraso ocorre quase todas as vezes.

Meus pensamentos estavam indo para uma falha de hardware, mas eu iniciei um prompt de resgate, montado manualmente em uma das unidades e fiz o mesmo teste. Desta vez, os resultados foram completamente consistentes e rápidos.

Quaisquer pensamentos seriam apreciados porque eu estou perdido.

    
por PeterD 07.05.2012 / 05:57

1 resposta

3

Você tem 2 GBytes de RAM? 600MB em .6s é 1GB / s, que é um disco muito rápido. O sistema usa write-behind para retornar o controle ao processo do usuário mais rapidamente, mas quando o sistema está sem buffers, o processo do usuário deve aguardar que os dados sejam gravados.

Além disso, as exclusões geralmente são uma operação intensiva para os kernels que não oferecem aos processos do usuário muitas oportunidades de executar

    
por 07.05.2012 / 06:49