Velocidade de gravação RAID mais rápida que a velocidade de leitura RAID

2

Acabamos de comprar uma nova matriz RAID de 24 unidades e um controlador LSI 9285-8e RAID. Estamos vendo duas coisas que nos parecem estranhas.

  1. As velocidades de gravação são mais rápidas que as velocidades de leitura (com ext4 ou xfs filesystems).

  2. Há um joelho na velocidade de leitura de forma que, quando o tamanho de leitura (com dd ) for maior que 128Kbytes, o desempenho cai em aproximadamente 30%.

Aqui estão os resultados de teste mais recentes com o tamanho da faixa RAID de 512k byte e xfs filesystem:

dd bs=1024k if=junk of=/dev/null        => 9.11s = 1.4 GB/s
dd bs=512k if=junk of=/dev/null         => 9.38s = 1.3 GB/s
dd bs=256k if=junk of=/dev/null         => 9.78s = 1.3 GB/s
dd bs=128k if=junk of=/dev/null         => 7.03s = 1.8 GB/s
dd bs=64k if=junk of=/dev/null          => 6.77s = 1.9 GB/s
dd bs=32k if=junk of=/dev/null          => 6.79s = 1.9 GB/s
dd bs=16k if=junk of=/dev/null          => 6.49s = 1.9 GB/s
dd bs=8k if=junk of=/dev/null           => 6.91s = 1.8 GB/s
dd bs=4k if=junk of=/dev/null           => 6.46s = 1.9 GB/s

(FYI, para todos os tamanhos mostrados acima, a velocidade de gravação é de 2,2 GB / s)

Atualmente estou usando o RAID0, mas tive resultados quase idênticos com o RAID6.

É apenas o novo servidor sendo instalado. Nenhum outro aplicativo está sendo executado e nenhuma conexão de rede está causando interrupções. Esta instalação está no OpenSuSE 11.4. Poderíamos fazer testes aleatórios de leitura, mas como nossa intenção é transmitir vídeo (por exemplo, 4K 3D ou 8K), estamos realmente preocupados apenas com as leituras sequenciais.

Alguma idéia de como acelerar a velocidade de leitura?

    
por Donald McLachlan 01.11.2011 / 17:46

1 resposta

1

A placa RAID é especificada (PDF) como tendo velocidades de gravação mais rápidas do que as velocidades de leitura, então nada de anormal está acontecendo lá. Meu palpite é que o 1GB de memória cache onboard é usado como um buffer de gravação para ajudar a suavizar quaisquer atrasos de busca causados pelos discos rígidos relativamente lentos. Mas, ao ler, obviamente você sempre terá que esperar que os discos obtenham dados.

Quanto ao ponto de joelho nas velocidades de leitura, isso pode ser devido ao preenchimento de um cache em algum lugar ao longo da cadeia. O cache Intel CPU L2 é normalmente de 256 kB (por núcleo), com um cache L3 maior (compartilhado entre os núcleos). Suponha que o executável dd e qualquer outra coisa necessária pelo SO durante o teste tenha pelo menos um byte e nunca exceda 128kB. Isso significa que os testes de tamanho de bloco de 128KB (ou menos) são praticamente desimpedidos pela CPU, mas o desempenho pode ser reduzido significativamente para um tamanho de bloco de 256kB devido à latência de frequentes buscas de cache L3 (ou memória principal). Pode ser coincidência, mas se encaixa com seus dados de teste.

    
por 02.11.2011 / 01:17

Tags