LSI 9260-8i limitado a um máximo de 200 MB / s (independentemente das unidades)

2

O controlador LSI MegaRAID 9260-8i está limitado a taxas máximas de transferência de 200 MB / s. O servidor é um HP DL180 G6, com o CentOS 7 (64 bits) e estamos testando unidades SAS de 4 TB (Modelo: WD4001FYYG). O controlador está usando o iBBU08 (cache 512). Testamos a ativação / desativação do cache e a E / S direta, mas isso não resolve o problema.

De acordo com nossos testes, escrevendo simultaneamente para dois discos virtuais diferentes (uma unidade RAID10 de 6 discos e uma unidade RAID0 de um único disco) obtemos o máximo. 200 MB / s ao ler e no máx. 200 MB / s ao escrever.

Verificamos que o desempenho diminui ao operar simultaneamente em uma unidade diferente porque a largura de banda (aprox. 200 MB / s) é compartilhada entre diferentes operações de unidades de disco independentes (gargalo).

Conclusão:

O controlador LSI está limitando a largura de banda para no máximo 200 MB / s.

Por que isso está acontecendo? Como podemos arranjá-lo? Pode estar relacionado com a placa PCI? Podemos medir a taxa de transferência?

PS: O problema foi arquivado no ticket de suporte SR # P00117431, mas paramos de obter respostas do AVAGOTECH (ex-LSI) depois de enviar informações detalhadas.

Obrigado

Estes são nossos testes de IO:

--- 1) Teste IO de unidade única ---

Teste de gravação:

# sync
# echo 3 > /proc/sys/vm/drop_caches
# dd if=/dev/zero of=/tmp/test bs=8k count=1M conv=fsync

1048576+0 records in
1048576+0 records out
8589934592 bytes (8.6 GB) copied, 46.7041 s, 184 MB/s

teste de leitura:

# sync
# echo 3 > /proc/sys/vm/drop_caches
# dd if=/dev/zero of=/tmp/test bs=8k count=1M conv=fsync

1048576+0 records in
1048576+0 records out
8589934592 bytes (8.6 GB) copied, 47.1691 s, 182 MB/s

--- 2) Duas unidades de teste de E / S simultâneas ---

Vamos repetir o teste anterior, mas executando as mesmas operações de E / S em uma segunda unidade independente ao mesmo tempo. Como resultado, a mesma unidade agora executa apenas 50%, o que prova que os IOs na segunda unidade (/ mnt / sdb / test) estão compartilhando alguns recursos limitados no controlador LSI.

Teste de gravação:

Processo 1:

[root@hp ~]# sync
[root@hp ~]# echo 3 > /proc/sys/vm/drop_caches
[root@hp ~]# dd if=/dev/zero of=/tmp/test bs=8k count=1M conv=fsync
1048576+0 records in
1048576+0 records out
8589934592 bytes (8.6 GB) copied, 87.8613 s, 97.8 MB/s

Processo 2:

[root@hp ~]# dd if=/dev/zero of=/mnt/sdb/test bs=8k count=1M conv=fsync
1048576+0 records in
1048576+0 records out
8589934592 bytes (8.6 GB) copied, 86.3504 s, 99.5 MB/s

teste de leitura:

Processo 1:

[root@hp ~]# dd if=/tmp/test of=/dev/null bs=8k count=1M
1048576+0 records in
1048576+0 records out
8589934592 bytes (8.6 GB) copied, 81.5574 s, 105 MB/s

Processo 2:

[root@hp ~]# dd if=/mnt/sdb/test of=/dev/null bs=8k count=1M
1048576+0 records in
1048576+0 records out
8589934592 bytes (8.6 GB) copied, 84.2258 s, 102 MB/s
    
por Christopher Pereira 22.09.2015 / 19:31

3 respostas

0

Isso pode acontecer facilmente porque os setores 4k na unidade são 512e (você não especificou o modelo da unidade, então é um pouco difícil, mas considerando que é a unidade de 4Tb, eu diria que é Formato Avançado ). Então, eu verificaria se o seu sistema operacional está ciente do tamanho do seu setor, a menos que você queira ler e modificar o ciclo de gravação. Isso significa um alinhamento adequado da partição e o tamanho do bloco dos sistemas de arquivos que você está usando.

E sim, não existe HP DL 180 G7 , gen6 foi o último, depois o índice do modelo foi alterado de 180.

Apenas no caso, há artigo bastante decente para você (sim, você está usando o CentOS, mas ... você sabe, é basicamente a mesma coisa quando se trata de internos).

Outra coisa que você deve verificar e ativar no probaby - é o cache de gravação do controlador, se você tiver uma BBU, é claro.

    
por 22.09.2015 / 20:18
0

Bem, ainda não há informações suficientes aqui ainda.

Primeiro, quais são as unidades? Modelo e versão do SAS suportados?

Em segundo lugar, você está escrevendo para a matriz de outra unidade ou matriz? Ou escrevendo e lendo para e da mesma matriz? Se você está mantendo tudo na mesma matriz, então você está dividindo o IO disponível para as unidades ao meio (na melhor das hipóteses), independentemente do fato de que o SAS é full duplex se os dados são distribuídos pelos mesmos discos e você re leitura / escrita de cada disco sua própria limitação sobre o que ele pode tratar do ponto de vista de operações de disco ...

Além disso, se você estiver lendo ou escrevendo de um lado para o outro do Raid0 para o RAID10 ... então você é o gargalo da unidade única. Você só conseguirá a velocidade máxima que uma unidade pode suportar. Que a propósito 200M B (1,6 G b s aproximadamente) não é ruim para um único disco rígido.

    
por 22.09.2015 / 20:31
0

Talvez você esteja atingindo o valor máximo de IOPS fornecido pelo seu cartão: com pacotes de 8K, escrever / ler a 200 MB / s significa uma taxa de IOPS de cerca de 25 mil a mais ou menos.

Você pode tentar novamente com pacotes maiores (ou seja, usar bs = 1M ou similar)? Isso muda alguma coisa?

    
por 22.09.2015 / 23:08

Tags