← Tutoriais

[MySQL] Optimizar o Servidor MySQL Como Um Profissional

Lida 6046 vezes

Offline

=IceBurn= 
Membro
Mensagens 897 Gostos 3
Feedback +3

Troféus totais: 32
Trófeus: (Ver todos)
Windows User Level 6 Linux User Mobile User Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5

Olá a todos.

Pois bem, hoje trago-vos mais um tutorial, até porque já há algum tempo que não fazia nenhum para o +T.

Este tutorial destina-se a quem tem servidor dedicado (ou VPS) e a dificuldade é praticamente nula, qualquer pessoa que tenha as mínimas noções de Linux conseguirá seguir facilmente as indicações.

Optimizar um servidor MySQL é um trabalho que leva tempo, um trabalho de cálculo e estudo, que pode levar vários dias até se conseguirem resultados satisfatórios, pois cada servidor é um caso e não há configurações iguais. Para além disso, estas optimizações não podem ser feitas por qualquer pessoa, pois envolvem bons conhecimentos de configuração e modo de funcionamento de um servidor MySQL.

Há pessoas que estão a pagar dezenas de Euros a administradores de sistemas Linux para fazer esta optimização.  O negócio é bom e rende, principalmente porque uma boa optimização faz do cliente, um cliente satisfeito e um servidor a correr mais suavemente com consumos reduzidos de memória.

No entanto é no poupar que está o ganho, por isso mesmo hoje vou indicar-vos como qualquer pessoa consegue fazer este trabalho e assim poupar muito dinheiro.

Para tal vamos usar um script em Perl - que não faz milagres é certo - mas permite uma optimização certeira, rápida e grátis, claro.

Este programa (no fundo é um programa) chama-se "MySQL Tuner" - apenas um ficheiro.

Fazemos então o login no nosso terminal Linux, descarregamos o arquivo (links para download em baixo), extraímos e podemos começar a usar.

Para tal, corremos o ficheiro "mysqltuner.pl" da seguinte forma:
Código: (bash) [Seleccione]
perl mysqltuner.pl
Após esse passo ele pode ou não pedir o nome de utilizador e palavra passe MySQL, depende se têm essa informação no ficheiro my.cnf ou não.

Antes de avançarem na operação, façam por favor um backup do ficheiro de configuração, se alguma coisa correr mal, podem sempre voltar ao ponto onde estavam:
Código: (bash) [Seleccione]
cp /etc/my.cnf /etc/my.cnf-BKP
Logo de seguida, este script vai propor-nos as alterações consoante os dados estatísticos disponíveis no servidor MySQL.

Aqui fica um exemplo parcial do output:


Como podem constatar, o MySQL Tuner faz-nos várias sugestões, incluindo as variáveis a ajustar.

Estas variáveis deverão ser ajustadas no ficheiro de configuração do servidor MySQL, para tal basta usarem o vosso editor favorito (o meu é o nano) e colocar os valores recomendados.
Código: (bash) [Seleccione]
nano /etc/my.cnf
IMPORTANTE: certifiquem-se que o vosso servidor MySQL está a correr há pelo menos 24 horas consecutivas (no screenshot que coloquei não estava).

Ajustem os valores na configuração e reiniciem o servidor MySQL, geralmente:
Código: (bash) [Seleccione]
service mysqld restart
24 horas depois corram novamente o script e vejam se ele propõe mais alterações.

Podem fazer o download aqui: http://github.com/rackerhacker/MySQLTuner-perl/downloads

Para o caso do download falhar por qualquer motivo, junto em anexo uma cópia do script.

Compatibilidade:
   * MySQL 3.23, 4.0, 4.1, 5.0, 5.1
   * MySQL 5.4 (suporte parcial)
   * MySQL 6.0 (suporte parcial)
   * Perl 5.6 ou superior
   * Sistema operativo Unix/Linux (testado em Linux, variantes BSD, e variantes Solaris)
   * Windows não é suportado
   * É essencial ter permissões de leitura por parte do servidor MySQL.


Espero que esta dica tenho sido do vosso agrado, mas que principalmente vos faça cortar em alguns gastos.


Obrigado.