Precisa de ajuda para tentar diagnosticar problemas de desempenho do Symmetrix SAN

1

Estou ajudando a testar o hardware de uma nova instância do SQL Server, e o volume apresentado ao SO para os arquivos de dados é esculpido em um conjunto de eixos em uma SAN do Symmetrix. O servidor ainda precisa ter o SQL Server instalado, portanto, a única atividade na caixa é o nosso benchmarking.

Agora, nossos engenheiros de armazenamento dizem que esse volume e seus recursos são dedicados ao nosso novo servidor (não tenho acesso para ver a configuração real da SAN), mas os benchmarks de desempenho são preocupantes. Por exemplo, os números parecem bons até que, de repente, e aleatoriamente, vemos em nossos tempos de espera da ferramenta de benchmarking IO de 100 segundos, e comprimentos de fila de disco de 255 no perfmon.

Esta SAN tem um cache de 8 GB, além de outros aplicativos além do nosso que usam a SAN. Eu estou querendo saber se (mesmo que os fusos de nossos volumes devam ser dedicados a nós) o cache pode estar sendo martelado durante o teste de desempenho, ou talvez os fusos em que nossos volumes estão não são realmente dedicados a nós.

Não estamos recebendo muita atenção de nossos engenheiros de armazenamento para nos ajudar a rastrear o problema, por isso, se alguém tiver experiência em diagnosticar um problema como esse e quiser compartilhar ideias e metodologias de solução de problemas, agradecemos.

    
por arcain 01.01.2011 / 06:35

2 respostas

2

@arcain

Quais ferramentas de benchmark você está usando?

Várias ferramentas disponíveis, como SQLIOSim e SQLIO, dependendo de como estão configuradas, podem fazer com que o tamanho da fila de disco atinja níveis altos, mas tudo bem, já que faz parte do teste. O problema são os tempos de espera que você mencionou, para mim, isso é um dado inoperante da contenção do disco. Com exceção da saturação de malha de SAN causada por muitas VMs, minha experiência é que os discos (quando não os SSDs) são sempre o maior gargalo. Dito isto, eles normalmente não devem resultar em estados de espera, a menos que sejam compartilhados com outro host que os esteja utilizando ativamente.

Nessas situações, sugiro usar o SQLIO do MS (isto é, se isso não for o que você já está usando). Sendo que o seu Symmetrix tem um cache de 8GB, eu testaria com um arquivo de teste de 16GB ou mais para empurrar o cache para garantir que a variação não seja tanto o cache, mas sim o que os discos subjacentes estão realmente produzindo.

Você pode usar o SQLIO para criar o arquivo para uma bateria de testes e, em seguida, executar o seguinte em relação a ele:

sqlio -kW-t2-s120 -dE -o4 -fsequential -b64 -BH -LS Testfile.dat

O parâmetro -d refere-se à letra da unidade, neste caso E:

Esse teste executa um conjunto de gravações sequenciais em um período de 2 minutos (-s120) e você pode agrupar em um arquivo de lote simples com registros de data e hora para ajudá-lo a controlar a hora do dia e canalizar os resultados para um arquivo de log. Reveja. Escreva o lote para executar o item acima ou algo similar repetidamente por um período e analise os resultados. Quanto maior a amostra, melhor.

Se os discos são realmente dedicados, e como você está empurrando o seu cache, os IOs, MBs e latências resultantes devem estar bem próximos (variação de 1-5%). Se for além disso para mais de 15% ou mais, provavelmente você terá contenção de disco.

Outra coisa, não se esqueça de anotar a data e os horários dos seus testes e em quais unidades você testou. Todos os SANs têm algum tipo de registro para criar o seguinte perfil:

  • Gravações rápidas - escreve em cache e depois é liberado no disco
  • Gravações rápidas atrasadas - uma situação em que seu cache global para gravações é saturado e precisa lavar alguns gravações anteriores para o disco para dar espaço para as novas solicitações de gravação recebidas
  • Read Hits - lê que ficou satisfeito pelo cache global
  • Read Misses (Long e Short) - o read foi parcialmente satisfeito com o cache global (curto) ou não em tudo e teve que puxar tudo do disco (longo)

Você deve poder solicitar essas informações para ajudar a avaliar o desempenho do seu Symmterix, já que este é um SAN compartilhado com outros hosts.

Poste de volta com alguns resultados, se puder, ficarei mais feliz em analisá-los.

    
por 04.01.2011 / 02:47
0

O cache será compartilhado entre você e os outros servidores que estão no array. É possível que os eixos sejam compartilhados com outra coisa. Somente seu administrador de armazenamento saberia com certeza.

Também pode ser que a prateleira ou o loop de back-end estejam com capacidade (não provável, mas possível).

Se tudo está dando certo, então as coisas ficam um pouco porcarias, depois voltam ao normal, parece que você está preenchendo o cache no array e você está começando a gravar diretamente no disco, o que é um problema, já que os discos já estão funcionando em 100%. Quantos fusos estão por trás do LUN? Que tipo de desempenho você está vendo quando as coisas estão funcionando corretamente?

    
por 02.01.2011 / 12:37