Editar:
Suas observações de dd oflag=direct
podem estar relacionadas a problemas de gerenciamento de energia. Use PowerTOP para ver se os estados C da sua CPU estão comutados com muita frequência acima de C1 sob carga de gravação. Se estiverem, tente ajustar a MP para garantir que a CPU não irá dormir e re-executar os benchmarks. Consulte a documentação da sua distro sobre como fazer isso - na maioria dos casos, esse será o parâmetro% boot_de_kernel bootline, mas YMMV.
A grande diferença no desempenho entre uma gravação intel_idle.max_cstate=0
e uma gravação em buffer pode ser devido a:
- ao usar O_DIRECT, a CPU não é enviada para C3 + sleep ou
- a CPU é enviada para o C3 +, mas não importa muito devido ao processamento simplificado quando se usa O_DIRECT - apenas apontando para uma área de memória zerada e emitindo um pedido de escrita DMA precisa de menos ciclos do que o processamento em buffer e será menos sensível à latência
resposta obsoleta:
Isso se parece muito com um gargalo causado pelo único thread em O_DIRECT
.
Raciocínio
- a folha de dados do controlador está prometendo uma taxa de transferência de 6.000
- sua execução
md
em paralelo está exibindo 170MB / s + por unidade, portanto, o caminho não é restrito pela largura de banda PCIe de conexão - você está vendo taxas de utilização altas e próximas de 100% para md10_raid10
Embora os patches para cálculo de soma de verificação RAID5 multithread tenham sido confirmados para dd
em 2013, não consigo encontrar nada sobre aprimoramentos RAID1 / RAID10 semelhantes, então eles podem simplesmente não estar lá.
Coisas para experimentar
- mais do que um único tópico de escrita com
mdraid
, apenas para ver se muda alguma coisa - uma implementação RAID10 diferente - LVM RAID 10 vem à mente, mas você também pode olhe para o ZFS 1 que foi projetado exatamente com este caso de uso (muitos discos, sem controladores RAID de hardware) em mente
- possivelmente uma versão mais recente do Kernel
FWIW, você raramente (ou nunca) verá o pico de desempenho de gravação (especialmente com um sistema de arquivos não-CoW) na largura de banda com a mídia de armazenamento mecânico. Na maioria das vezes, você será restringido pelos tempos de busca, portanto, o pico de largura de banda não deve ser uma grande preocupação, desde que atenda aos seus requisitos mínimos.
1 se você fizer ZFS, você deve refinar seu método de teste, pois a gravação de blocos de todos os zero em um conjunto de dados ZFS pode ser arbitrariamente rápida. Zeros não são gravados em discos, mas apenas vinculados ao bloco all-zero, se a compactação estiver ativada para o conjunto de dados.