RAID1 write penalty usando mdadm - qual é a causa?

1

Ao fazer alguns testes de desempenho gravando em um espelho RAID 1 de 3 vias baseado em SSD desenvolvido pelo mdadm, parece que sofremos uma penalidade de gravação significativa de cerca de 2,2x mais lenta do que fazendo o mesmo teste em apenas um disco individual. Estamos lendo e escrevendo para as mesmas unidades físicas subjacentes neste teste porque isso simula nosso caso de teste do mundo real em que estamos interessados.

Essa lentidão é devido às limitações de velocidade do SATA III ou algo mais? Estou surpreso que o RAID 1 teria uma penalidade de gravação porque eu acho que ele poderia gravar em todas as três unidades simultaneamente na mesma velocidade que poderia escrever para uma delas.

All three drives present:
dd if=/dev/md3 of=test.file bs=1048576 count=37193
...207.748 s, 188 MB/s

Just two drives present (i.e. normal two-drive RAID 1)
dd if=/dev/zero of=test.file bs=1048576 count=37193
...119.016 s, 328 MB/s

Just one drive present (no redundancy)
dd if=/dev/zero of=test.file bs=1048576 count=37193
...93.794 s, 416 MB/s
    
por sa289 10.08.2015 / 23:46

1 resposta

1

Parece que todos os três SSDs estão no mesmo controlador e que você está atingindo a classificação máxima de velocidade SATA III:

Third-generation SATA interfaces run with a native transfer rate of 6.0 Gbit/s; taking 8b/10b encoding into account, the maximum uncoded transfer rate is 4.8 Gbit/s (600 MB/s). (source)

Seu teste para gravar nas três unidades ao mesmo tempo, de modo que 188 MB / s sejam, na verdade, 564 MB / s, um pouco abaixo da velocidade máxima.

Se você pode mover um ou mais dos SSDs para separar os controladores, isso pode ajudar.

Esta limitação que você está atingindo é uma das razões pelas quais o armazenamento baseado em flash PCIe está aparecendo em sistemas cada vez mais avançados.

    
por 11.08.2015 / 01:21