O cache de gravação causa desempenho mais lento?

4

Elementos externos WD 2.0 de 2 TB USB 2.0

Conectado à máquina Windows XP SP3, o cache de gravação está desativado por padrão. Funcionou bem.

Como se pretende que seja um dispositivo permanente (nunca removido) e um no-break (portanto, falta de energia não é uma preocupação), decidi ativar o cache de gravação no Windows para melhorar o desempenho.

Primeiramente, notei que a velocidade de gravação do BURST realmente aumentou. No entanto, as gravações sustentadas por mais de um minuto causaram lentidão em todo o sistema e causariam o bloqueio da unidade, fazendo com que qualquer outra operação de E / S falhasse. Depois de alguns minutos, voltaria ao normal.

Gravação de cache desativada, reinicializada e voila, tudo está de volta ao normal. O que dá?

EDIT: Testado com uma unidade interna WD diferente conectada através de um cabo IDE-para-USB de terceiros, os mesmos resultados. Indo para cavar um velho Seagate e testá-lo também ...

    
por Unsigned 14.10.2011 / 19:45

1 resposta

1

Eu posso pensar em duas possibilidades.

O cache de gravação faz com que o Windows inicie o armazenamento em cache dos dados gravados na memória. Como o disco rígido é mais rápido que o USB externo (ou tecnicamente a interface USB), os arquivos começam a se acumular na memória. Dependendo da sua carga de trabalho, isso pode empurrar os programas para fora da memória. Então você agora tem um problema. Os dados estão sendo lidos no disco rígido. Mas agora o Windows precisa exibir os programas sem memória, pois o cache está se enchendo rapidamente. Isso pode causar muito de leituras e gravações em disco.

Isso normalmente não faz com que outras operações de E / S falhem. Você deve postar as mensagens de erro exatas. Isso é raro e de grande preocupação , pois pode sinalizar algo pior do que apenas uma mensagem de erro do SO.

A segunda possibilidade é o que acontece quando sua unidade externa recebe um comando de cache flush. O Windows envia regularmente um comando "cache flush" para os discos durante mais operações de gravação de E / S. Isso funciona como uma proteção contra perda de dados durante falhas de energia. Quando isso acontece, o Windows pára de enviar dados até que o cache do disco seja liberado. Todo esse tempo, sua unidade de origem ainda está girando, lendo dados na memória em preparação para enviar para o externo.

Existe uma terceira possibilidade, mas isso permite começar pequeno.

BTW, essa velocidade de gravação é apenas para impressionar os usuários e não é real. O Windows não está enviando dados mais rápido do que no meio e no final da gravação de E / S.

Se você se lembrar da classe de estatísticas, o que acontecerá com a precisão de suas previsões quando o tamanho da amostra ficar menor ?

    
por 14.10.2011 / 20:05