O desempenho do MySQL pode ser aumentado de duas maneiras: otimização de software e atualizações de hardware. Hoje vamos focarn o aspecto de hardware.
O hardware ajuda a impulsionar o desempenho?
Como otimização de software, as atualizações de hardware para sistemas MySQL são baseadas em metas estabelecidas para uma organização. A questão não é qual o hardware que funcionaria melhor, mas sim qual irá ajudar a organização a alcançar uma meta X. A resposta é sim, o hardware faz aumentar o desempenho, mas existem algumas ressalvas enquanto a isso. Existem casos, como demandas das organizações que são cumpridas, mesmo com um hardware de baixa qualidade, e todas elas exigem um aumento de desempenho no lado do software.
No entanto, uma organização pode ter um plano de metas para um aumento de desempenho, e mesmo depois de todos os ajustes de software, a única maneira de melhorar é adicionando mais hardware.
Quando não atualizar o hardware?
“O primeiro passo para resolver um problema é reconhecer que se tem um”. Este famoso ditado se aplica, em grande medida, no caso das atualizações de hardware para o aumento de desempenho.
Antes que quaisquer serviços profissionais sejam comprados, fazer as seguintes perguntas pode resolver os problemas:
- O uso de hardware equilibrado: Pode ser o caso de quatro servidores que estão sendo utilizados para o gerenciamento de banco de dados, três deles estão parados, enquanto um realiza a maior parte da carga de trabalho. Então, ao invés de atualizar o hardware, isso requer balanceamento de carga. Desta forma, os custos incorridos para obter um novo hardware podem ser reduzidos consideravelmente. No entanto, alguns aplicativos não podem ser facilmente equilibrados. No final do dia, tais decisões e dilemas devem ser calculados pelo departamento de TI da organização. Não há nenhuma lei mágica específica que se aplica a todos os cenários;
- Picos de uso: Há frequentemente casos de picos de uso, o que geralmente acontece durante os períodos de backup. Este é um indicador enganoso de escassez de hardware. Isso pode ser resolvido simplesmente por uso noturno;
- Otimização de Software: Este é o fator mais importante antes de sequer em pensar em otimização de hardware. Sim, você acertou: é o software de otimização. A organização deve assegurar que o seu sistema de banco de dados MySQL seja bem otimizado para maior desempenho. Isto pode ser alcançado através de:
- Adição de índices;
- Otimização de consultas;
- Normalização do Banco de Dados;
- Configuração das definições do servidor MySQL para as necessidades específicas;
- Benchmarking e stress testando o aplicativo regularmente.
- As metas: Não há nada como o melhor hardware, mas o hardware que serve o aplicativo precisa de mais. Como em melhorias de software, existem metas vinculadas a razões para upgrades de hardware. Não existem respostas claras para provar como o hardware pode melhorar o desempenho. Já houve casos de atualização de quatro núcleos para oito e o desempenho reduziu. Mas o objetivo final de melhorar o desempenho do aplicativo deve ser baseado em três fatores: alto rendimento, melhores tempos de resposta e escalabilidade suave. Isto pode ser alcançado, obviamente, tomando decisões calculadas, por exemplo, a adição de mais memória para evitar IO de disco e permitir pesquisas mais rápidas no banco de dados.
Qual atualizar o hardware para aumentar o desempenho do MySQL?
Agora que já falamos sobre quando e por que as atualizações de hardware são uma opção, é hora de discutir quais são as mais cruciais.
É natural chegar a uma conclusão de que pela adição de mais CPU, RAM e disco rígido, o desempenho MySQL vai melhorar de repente. Isso, indiscutivelmente, é bem verdade – pelo menos no papel. No entanto, a ressalva está no conhecimento das especificações técnicas de realização das atualizações de hardware.
Aqui estão algumas coisas importantes para se levar em consideração:
- A quantidade de HDD é mais importante do que o espaço. Isso pode parecer chocante no início, mas existe uma razão para isso. Existem casos de pessoas adicionando 1 TB HDD e reduzindo o desempenho. O truque é obter 4 x 250 GB HDD com um array RAID. Isso ajuda na distribuiçãoeficaz de carga e aumenta o desempenho consideravelmente. A maioria dos principais servidores usa RAID 10, o que é mais seguro e mais rápido. Isso permite que várias consultas sejam equilibradas em várias unidades, dando tempo de resposta mais rápida, rendimento e escalabilidade mais fácil;
- Adicionar mais memória RAM não ajuda em termos de cache. No entanto, o truque é fazer com que o aplicativo utilize a memória RAM acrescentada. Portanto, há um reajuste de software envolvido. Isto pode ser conseguido pela personalização das configurações do servidor MySQL;
- A adição de mais CPU depende de que tipo de aplicativo está sendo executado. Se o aplicativo for capaz de fazer cálculos longos e complexos, ou for estatístico, adicionar mais poder de CPU pode afetar o desempenho do MySQL consideravelmente. Se fosse apenas um servidor web/ banco de dados padrão, provavelmente fosse melhor adicionar HDDs;
- A adição de servidores é um desafio. Para um aplicativo em grande escala, um único servidor não pode, obviamente, lidar com a carga completa. Por isso, é melhor ter dois ou mais servidores. Assim, no caso de dois servidores, 50% do tráfego é encaminhado para outro servidor, melhorando a velocidade de carga e contrapeso.
O balanceamento de carga pode ser alcançado através da criação do segundo servidor com dupla replicação mestre. Esta tecnologia mantém os servidores em sincronia e também serve como um sistema de backup.
Em conclusão, pode-se dizer que as atualizações de hardware certamente aumentam o desempenho do MySQL para uma extensão. Isso pode ser uma afirmação generalizada, porque é impossível mentir um plano simples para melhorar o desempenho de um banco de dados em uma organização X. Isso porque ele é obrigado a ser diferente do que é possível em uma organização Y. Portanto, a dica é para a organização estabelecer metas, medir o desempenho existente e realizar testes antes de fazer a atuaçização.
***
O artigo original está disponível: http://blog.monitis.com/index.php/2012/09/04/hardware-solutions-for-increasing-mysql-performance/