Você precisava distinguir entre o buffer de gravação ativado e o desativado o buffer de liberação . Para entender completamente a diferença, vamos começar do básico.
HDDs e SSDs quase que universalmente têm um cache DRAM privado usado para armazenar e unir rapidamente as gravações recebidas, acelerando muito seu desempenho de gravação. Como referência, considere que um SSD rápido SATA bombeou > 500 MB / s de gravações seqüenciais com seu buffer ativado e apenas ~ 5 MB / s com o buffer desativado. Os HDDs mostram uma degradação de desempenho menos severa, mas ainda assim.
Ao mesmo tempo, se esses caches DRAM privados não forem protegidos contra perda de energia, poderá ocorrer corrupção de dados grave (até a perda de todo o sistema de arquivos). Para evitar esse problema sem destruir totalmente o desempenho, existem algumas possibilidades:
- use unidades com caches de gravação protegidos pelo powerloss (isto é: SSD corporativo e algum disco rígido mecânico habilitado para NV mais recente)
- use um controlador RAID de hardware com cache protegido pelo powerloss, desabilitando o cache DRAM do disco privado
- usa hardware de consumidor barato com cache DRAM desprotegido habilitado, mas emitindo liberações periódicas para garantir consistência no sistema de arquivos (mas não em dados, pois o impacto no desempenho seria muito grande).
Ao usar abordagens semelhantes a software RAID (por exemplo: Linux MDRAID, ZFS, espaços de armazenamento, ecc), você deve nunca desativar os caches de disco, a menos que esteja pronto para pagar um alto desempenho. Em vez disso, sua melhor opção é deixar o cache de gravação ativado e deixar seu sistema de arquivos / SO livre para emitir comandos DRAM sync / flushes sempre que quiser. Dessa maneira, você ganha o aumento de velocidade de desempenho do cache ativado sem arriscar a nuke seu sistema de arquivos inteiro. Observe que os dados do aplicativo não são protegidos automaticamente: qualquer aplicativo que queira garantir a durabilidade dos dados deve emitir o próprio esvaziamento periódico (os bancos de dados são um bom exemplo).
Por outro lado, você deve NUNCA desativar a limpeza do cache DRAM, a menos que você tenha 200% de certeza de que suas unidades / placa RAID tenham um cache de write-back protegido . No entanto, nesse caso, deixar os flushes ativados não causaria grandes danos, já que quase qualquer unidade / cartão recente simplesmente ignora os flushes quando seu cache DRAM protegido está em um estado íntegro.