Estou procurando maximizar o desempenho do meu disco rígido ativando o cache de gravação. Eu entendo os riscos em fazer isso, mas acredito que eles sejam insignificantes para como eu vou usá-lo.
Na guia Propriedades do HD no Windows, as duas últimas opções são um pouco confusas:
Enable write caching on device
- ok, mas como isso funciona em conjunto com a opção anterior? Ele substitui o cache do Windows ou funciona ao lado dele?
Turn off Windows write cache
- Ok, mas por que eu faria isso. E se eu marcar esta caixa, a opção Melhor desempenho ainda estará selecionada, contradizendo-se.
Alguém pode ajudar a esclarecer exatamente o que esses sinalizadores fazem e como eles afetam/dependem uns dos outros.
A segunda opção não é "cache do windows" como você diz, mas a inibição da chamada do sistema "flush":
Turn off Windows write cache buffer flushing
Essa opção desabilitaria o comando flush chamado por algum aplicativo (e no desligamento da máquina), cuja finalidade é gravar efetivamente o cache de disco no disco.
Não desabilitará o cache de gravação.
Você pode tentar habilitar esta opção, correndo o risco de perda de dados, mas dependendo do seu contexto, o ganho de desempenho pode não ser perceptível.
Realmente a diferença é destacada nas Políticas de Remoção. Isso parece uma pergunta semelhante a: https://superuser.com/questions/215372/what-does-write-cache-buffer-flushing-mean
Você precisa entender como os dados são gravados no disco.
Você tem alguns subsistemas envolvidos no processo de gravação dos dados do processo no disco físico.
Normalmente os processos estão pedindo ao kernel (o SO) para gravar algo no disco. Além disso, o próprio kernel pode gravar alguns dados no disco, por exemplo, como uma operação de troca.
As páginas de memória que precisam ser gravadas no disco são mantidas em uma região da memória física chamada cache do sistema de arquivos e são chamadas de páginas sujas e serão gravadas no disco se uma das condições for verdadeira:
Agora os dados irão para o disco, mas o subsistema de disco possui 2 componentes que são importantes nesta explicação:
Os controladores de disco modernos têm alguns módulos de memória que são chamados de buffer de disco . Se estiver ativado, os dados liberados para o subsistema do disco serão gravados no buffer do disco e a operação será considerada concluída pelo sistema operacional e pelos programas, mas os dados ainda não estão no disco. O problema com isso é que, se você reiniciar sua máquina, terá chances muito altas de perder dados. Você pode não perceber isso até ter uma corrupção do sistema de arquivos ou corrupção do banco de dados.
Aqui estão alguns motivos pelos quais os processos ou o sistema operacional precisam liberar os dados para o disco:
A configuração atual é a melhor relação entre desempenho e segurança, a menos que você tenha um UPS (fonte de alimentação ininterrupta).