Desempenho do cluster do SQL Server

Desempenho do cluster do SQL Server

Alguém pode me ajudar a responder o que espero seja uma pergunta realmente simples?

Suponha que eu tenha um aplicativo em execução em um banco de dados SQL Server e esteja executando testes de desempenho. Devo esperar um melhor desempenho se configurar um cluster de servidores de banco de dados? Ou isso "apenas" me dá melhores características de tempo e disponibilidade com failover, etc.?

Tenho tendência a pensar no último caso, por isso, se achar que o desempenho do banco de dados está fraco, devo trabalhar no design do meu aplicativo em vez de comprar hardware extra...

Atenciosamente, Emil

Responder1

Depende muito de como seu cluster é configurado e acessado. Não ajuda que a palavra “cluster” possa abranger vários arranjos diferentes.

Alguns acordos terão muito pouco impacto, outros irão tornar as coisas visivelmente mais lentas (múltiplos servidores ativos, por exemplo, onde uma transação precisa esperar que todos os servidores sejam atualizados antes de ser considerada confirmada, o que pode adicionar uma latência transacional considerável para operações que incluem inserções/atualizações, também organizar informações de bloqueio entre os servidores pode afetar operações somente leitura de forma semelhante) , e alguns arranjos podem acelerar as coisas (várias réplicas somente leitura para farmar a carga somente leitura em várias máquinas, permitindo requisitos de bloqueio, por instância) .

Então: sim, não ou talvez! Se você descrever seu arranjo com algum detalhe [máquinas, sistema operacional, DBMS, configuração do cluster, qual código acessa o cluster (um único servidor web, muitos servidores web, muitos clientes externos, ...), padrões de carga, ...] você pode obter uma resposta muito melhor.

(então, infelizmente, não é uma pergunta tão simples quanto você esperava, desculpe!)

Responder2

Não, você não verá nenhum aumento de desempenho. A solução de cluster no servidor MS SQL é apenas para alta disponibilidade, não para escalonamento ou balanceamento de carga.

Você pode configurar ambos os nós do cluster para ficarem ativos ao mesmo tempo, mas eles servirão bancos de dados diferentes e ainda assim "assumirão" os bancos de dados do outro nó se ele falhar.

Obter mais desempenho de um servidor SQL do que um único servidor pode produzir é um problema complexo, e vou arriscar e afirmar que não importa qual seja o seu cenário, você resolverá os problemas de desempenho do seu banco de dados mais facilmente com mais RAM, discos mais rápidos e ajustando o código do seu banco de dados.

Responder3

Você precisará ter armazenamento compartilhado (SAN/NAS) e isso provavelmente terá um desempenho melhor do que discos conectados diretamente, mas um cluster não tem desempenho melhor do que uma instância autônoma. Um cluster apenas para reduzir o risco de falha de hardware.

informação relacionada