Qual taxa de transferência devo esperar com o MPIO?

12

O Dell PowerEdge 2950 com duas NICs de 1 Gbps passando por duas portas de 1 Gbps em um comutador que passa para uma NetApp com quatro NICs de 1 Gbps que se apresentam como uma interface virtual. 24 unidades, 7200k SATA, NetApp RAID-DP. Mapeei cada NIC de host para a NetApp usando MPIO no iniciador iSCSI da Microsoft. Testando com SQLIO, minha taxa de transferência de gravação parece razoável em cerca de 200 MBs, mas minhas leituras estão mais próximas de 100 MBs.

Minhas leituras não deveriam ter mais de 200 MB, assim como minhas gravações? Isso é um problema de configuração ou há um problema fundamental de armazenamento que não entendo?

insira a descrição da imagem aqui

Atualização: Aqui estão IOPS para a carga de trabalho aleatória. As leituras fazem sentido, no entanto, não sei o que fazer com 20000 para as gravações. O cache da SAN é de 3,2 GB. Os testes do SQLIO são contra um arquivo de 25 GB.

insira a descrição da imagem aqui

Henry Lee
fonte
3
Qual é o seu cache no dispositivo NetApp? Você tem um administrador de SAN que pode extrair algumas métricas para você? Temos uma NetApp e conseguimos identificar alguns problemas com uma combinação de relatórios e logs de aviso. Por fim, nossa situação era uma placa de fibra ruim, mas o suporte da NetApp foi bastante útil para nos ajudar a causa raiz.
swasheck
2
Pode valer a pena examinar a configuração de seus agregados e volumes para garantir que seus discos estejam sendo usados ​​corretamente (fique à vontade para postar sua configuração, embora não tenha certeza de quantos de nós somos especialistas da NetApp). É normal que as gravações sejam mais rápidas que as leituras, porque as gravações podem ser armazenadas em cache no arquivador antes de serem enviadas para o disco, mas as leituras precisam atingir o disco, a menos que já estejam no cache.
21913 Nathan Jolly
2
@mrdenny De onde surge essa noção de "99% de IO em blocos de 64k"? Bob Dorr indica o contrário , assim como Wes Brown . Mesmo se ignorássemos esses dois artigos abrangentes, certamente o bom senso dita que você verá 8K IO em uma plataforma que usa um tamanho de página de 8K.
Mark Storey-Smith
2
@ mrdenny O meu deve estar quebrado então, devo ligar para o suporte? Estou sentado aqui, olhando para a atividade de E / S do arquivo de dados com o monitor de processo e, embora exista a leitura esperada de 64K em abundância, há muitas outras leituras múltiplas de 8K e, é claro, muita gravação de 8k. A atividade de log é como o esperado, múltiplos de 512 bytes, variando de gravações de 512 bytes a 60k.
Mark Storey-Smith
2
@ MarkStorey-Smith Na minha experiência, as leituras em 8k ocorrem tipicamente correlacionadas com a fragmentação. Também pode indicar lixo na memória, baixa duração da página devido às digitalizações que expulsam as páginas (ou seja, a maior parte da extensão ainda está na memória). Um sistema bem ajustado deve mostrar 64k leituras. Gravações, é claro, depende do que está realmente sujo.
Remus Rusanu

Respostas:

7

As gravações em disco estão realmente indo para a memória (NVRAM) no arquivador, para serem liberadas no disco posteriormente - em um arquivador ocioso, elas serão incrivelmente rápidas e IOPs de 20.000 são bastante confiáveis ​​(você verá velocidades semelhantes na maioria dos SSDs) .

As leituras, por outro lado, precisam vir do disco, a menos que já estejam no cache de leitura do arquivador (que, diferentemente das gravações, estão na memória volátil).

É difícil definir os fornecedores de armazenamento nos IOPs para discos giratórios, mas para uma unidade de 7200RPM, 80-120 Iops é bastante crível. Considerando que você provavelmente perdeu alguns discos para o RAID-DP e / ou peças sobressalentes da NetApp, 2.200 iops estão próximos do que você poderia esperar de 22 discos executando cerca de 100 iops cada.

Isso pode não explicar sua velocidade de leitura (seus discos podem não estar executando os 2200 pulos completos quando você está executando uma leitura seqüencial), mas pode pelo menos ajudar a explicar seu desempenho de gravação.

Nathan Jolly
fonte
Obrigado Nathan. Devo esperar o dobro da taxa de transferência com duas placas de rede e MPIO?
Henry Lee
1
Você é capaz de verificar a utilização em seu arquivador enquanto executa seus testes de leitura seqüencial? Se atingir 100%, é provável que seu gargalo esteja no arquivador (devido às limitações de configuração ou IOP em cada disco) e as conexões MPIO / MPIO extra não adicionarão nada. Seu rendimento de gravação pode aumentar ainda mais.
Nathan Jolly
5

Para a posteridade, após muitas tentativas e erros, descobrimos como obter o rendimento esperado.

Como mencionado acima, a NetApp tinha uma interface virtual suportada por quatro NICs físicas. O host possui duas NICs e eu configurei o MPIO por meio do MS iSCSI Initiator para que houvesse um caminho de cada NIC para a interface virtual. Os resultados foram a taxa de transferência acima - as gravações faziam sentido a quase 200 MB ou a velocidade de duas NICs, mas as leituras eram metade disso ou a velocidade de uma NIC.

Após uma inspeção mais detalhada, nosso funcionário da SAN notou que o tráfego estava fluindo apenas através de uma das NICs físicas para as leituras. Não tenho certeza se houve algum erro de configuração, mas tentamos duas coisas e obtivemos nossa taxa de transferência. Uma era mudar de uma interface virtual suportada por quatro NICs para duas interfaces virtuais, cada uma suportada por duas NICs. Em seguida, mapeie uma NIC de host para uma interface virtual. A outra coisa que tentamos foi usar o "aliasing" no lado da SAN para apresentar várias interfaces virtuais. (Eu não sou um cara da SAN, espero ter dito isso corretamente.)

Minha opinião é que precisávamos que a SAN apresentasse mais de uma interface para que o Iniciador realmente visse vários caminhos. Aqui está o nosso rendimento agora:

insira a descrição da imagem aqui

Henry Lee
fonte
por que as gravações menores são mais lentas agora?
Jack diz que tente topanswers.xyz
Não tenho certeza, ainda não conseguimos descobrir isso. Vou postar de volta se eu descobrir.
Henry Lee