Desempenho muito baixo de raid6

2

Notei que escrever para o raid-6 é muito baixo, mas quando faço testes com hdparm a velocidade é razoável:

dd if=/dev/zero of=/store/01/test.tmp bs=1M count=10000

Dá: 50Mb / s ou até menos.

O hdparm oferece:     hdparm --direct -t / dev / vg_store_01 / logical_vg_store_01 Dá 450MB / s

Por que os escritos do arquivo são baixos do que o teste hdparm? Há algum limite de kernel que deve ser ajustado?

Eu tenho um adaptador Areca 1680 com discos SAS 16x1Tb, linux científico 6.0

EDITAR

Meu mal. Desculpe todas as unidades estão em MB / s

Mais sobre hardware:

2 contadores de areca na dupla máquina quadcore. Ram de 16 GB
o firmware do sas backplane e areca é recente.
os discos são caixas de ataque seagate 7.200 rpm 16x1Tb x2. cada 8 discos são raid6, então totalizam 4 volumes com lba = 64.

dois volumes agrupados por lvm listrado e ext4 formatado

o tamanho da faixa é 128

quando eu formato o volume eu posso ver por iotop escreve 400mb / s

iostat mostra também que ambos os drives do membro lvm estão escrevendo com 450MB / s

FINALMENTE ESCREVENDO com 1600 GB / s

Um dos ataques estava degradando o desempenho devido a um disco ruim. É estranho que o disco no modo jbod dê 100MB / s com hdparm como outros. Depois de IO pesado, estava relatando nos arquivos de log Write Error (não tem 10 deles). O ataque ainda não estava falhando ou degradando.

Bem após a substituição, minha configuração é a seguinte:

  • controladores 2xARC1680 com
  • RAID0 com 16x1Tb SAS disks stripe 128 lba64
  • RAID0 com 16x1Tb SAS disks stripe 128 lba64

grupo de volumes com tamanho de faixa de 128K -

formatado para o XFS

Direto

hdparm --direct -t /dev/vg_store01/vg_logical_store01

/dev/vg_store01/vg_logical_store01: Timing O_DIRECT disk reads: 4910 MB in 3.00 seconds = 1636.13 MB/sec

Sem direcionamento

hdparm -t /dev/vg_store01/vg_logical_store01

/dev/vg_store01/vg_logical_store01: Timing buffered disk reads: 1648 MB in 3.00 seconds = 548.94 MB/sec

** dd test DIRECT **

dd if=/dev/zero of=/store/01/test.tmp bs=1M count=10000 oflag=direct 10000+0 records in 10000+0 records out 10485760000 bytes (10 GB) copied, 8.87402 s, 1.2 GB/s

** SEM DIRECTA **

dd if=/dev/zero of=/store/01/test.tmp bs=1M count=10000 10000+0 records in 10000+0 records out 10485760000 bytes (10 GB) copied, 19.1996 s, 546 MB/s

    
por Arman 02.04.2011 / 23:58

5 respostas

2

Verifique se o seu FS está alinhado com as dimensões do RAID. Estou obtendo 320MB / s na matriz RAID-6 com 8 drives SATA de 2 TB no XFS e acho que ele é limitado pelo avaliador de canal SAS 3Gb / s e, em seguida, pelo desempenho RAID-6. Você pode obter algumas ideias sobre o alinhamento em este tópico .

    
por 03.04.2011 / 06:09
1

Infelizmente, você está comparando maçãs com laranjas.

450Mb / s = 56MB / s, que é praticamente igual ao que você está vendo na vida real. Ambos estão lhe dando a mesma leitura (mas um está em bits, um está em bytes). Você precisa dividir 450 por 8 para obter a mesma medida para ambos.

(Na sua pergunta, você tem a capitalização ao contrário, agora eu só posso esperar / assumir que este é um erro de digitação, porque se você inverter a capitalização você obterá uma correspondência quase perfeita)

    
por 03.04.2011 / 00:24
0

Verifique se você pode ativar o cache de gravação no controlador RAID

é melhor se você tiver bateria no seu controlador, caso contrário você pode perder dados durante a falta de energia

    
por 03.04.2011 / 00:07
0

O teste hdparm basicamente realiza testes de leitura em buffer? Você não pode comparar velocidades de leitura em buffer para realmente gravar velocidades e espera que elas sejam iguais em um dispositivo RAID6.

Embora eu esperasse um desempenho melhor do que 50MB / s de gravações em RAID6 desse tamanho com unidades de qualidade (1TB SAS ou 1TB SATA?), não esperaria velocidades de gravação de 450MB / seg.

    
por 03.04.2011 / 01:30
0

but when I make tests with hdparm the speed is reasonable

hdparm não não testa o desempenho write , é "somente leitura". Além disso, ele testa o desempenho de leitura de E / S do block , mas a maneira como você invoca dd faz com que ele teste write e desempenho do sistema de arquivos bem (e RAID-5,6 write é mais lento do que ler por design). Se o seu FS for EXT3, para e. g., você pode facilmente obter um desempenho ruim se não formatou corretamente (levando não em consideração o parâmetro de tamanho de faixa completo do seu RAID).

Além disso, há um grande número de pessoas que tendem a usar tamanhos de distribuição bastante pequenos, o que leva a uma E / S de disco com menor qualidade. Qual foi a sua escolha de tamanho de faixa ao criar este RAID?

Outra questão é como os números de dd diferem enquanto varia o parâmetro bs ? Você já tentou usar tamanho de escrita de faixa completa para isso?

    
por 03.04.2011 / 02:26