Melhorando a velocidade de gravação do mdadm RAID-6

6

Eu tenho um mdadm RAID-6 no meu servidor de 5x1Tb WD Green HDDs. A velocidade de leitura é mais que suficiente - 268 Mb / s em dd. Mas a velocidade de gravação é de apenas 37,1 Mb / s. (Ambos testados via dd no arquivo 48Gb, o tamanho da RAM é 1Gb, o tamanho do bloco usado no teste é 8kb)

Você poderia sugerir por que a velocidade de gravação é tão baixa e há alguma maneira de melhorá-la? O uso da CPU durante a gravação é de apenas 25% (ou seja, metade de um núcleo do Opteron 165) Não há dados críticos de negócios e & amp; servidor é suportado pela UPS.

mdstat é:

Personalities : [raid6] [raid5] [raid4]
md0 : active raid6 sda1[0] sdd1[4] sde1[3] sdf1[2] sdb1[1]
      2929683456 blocks super 1.2 level 6, 1024k chunk, algorithm 2 [5/5] [UUUUU]
      bitmap: 0/8 pages [0KB], 65536KB chunk

unused devices: <none>

Alguma sugestão?

Coisas como writeback, barreira, nobh não ajudaram. DD blocksize = 1M, 8M não mudou nada. Parece que o mdadm lê fisicamente os setores para calcular a paridade, mesmo que isso não importe ... Isso está correto?

Atualização: A degradação de velocidade após o cache de stripe alterado ocorreu porque 1 HDD provavelmente falhou durante o teste, nice :-D

Resolvido: Depois de aumentar o cache de stripe & amp; mudando para bitmap externo, minhas velocidades são de 160 Mb / s, leituras de 260 Mb / s. :-D

    
por BarsMonster 29.12.2010 / 22:28

2 respostas

9

Já tentou ajustar / sys / block / mdX / md / stripe_cache_size?

De acordo com este post no fórum (em norueguês, desculpe) "sintonizar este parâmetro é mais essencial quanto mais discos e mais rápido o sistema que você tem":

  

No meu sistema, obtenho o melhor desempenho usando o valor 8192. Se eu usar o valor padrão de 256, o desempenho da gravação cai 66%.

Citando sua velocidade para comparação:

  

Discos: 8xSeagate 2TB LP (5900RPM) no mdadm   RAID6 (-n 512) (stripe_size_cache = 8192).

     

CPU: Intel X3430 (4x2,4 GHz, 8 GB de RAM ECC DDR3)

     

Velocidade: 387 MB / s de gravação sequencial, 704 MB / s de leitura sequencial, 669 pesquisas aleatórias por segundo.

Meu servidor doméstico tem quase os mesmos discos que você, usando o RAID 5:

  

Discos: 4x1,5TB WD Green no RAID 5 (stripe_size_cache = 256 - o padrão)

     

CPU: Intel i7 920 (2,66 GHz, 6 GB de RAM)

     

Velocidade: gravação seqüencial de 60 MB / s, leitura seqüencial de 138 MB / s (de acordo com Bonnie ++)

Parece que o desempenho de gravação sequencial é de cerca de 50% do desempenho de leitura.

Para que desempenho esperar, o Linux Raid Wiki diz sobre o RAID 5:

  

As leituras são quase semelhantes ao RAID-0   lê, escreve pode ser tanto   caro (requerendo leitura antes de   escrever, a fim de poder   calcular a paridade correta   informações, como no banco de dados   operações) ou similar ao RAID-1   escreve (quando gravações sequenciais maiores   são executados e a paridade pode ser   calculado diretamente a partir do outro   blocos a serem escritos).

E sobre o RAID 6:

  

O desempenho de leitura é semelhante ao RAID-5, mas o desempenho de gravação é pior.

    
por j-g-faustus 29.12.2010 / 23:51
4

tente

echo 32768 > /sys/block/md0/md/stripe_cache_size

e verifique;)

    
por DM1 09.09.2012 / 09:16

Tags