segunda-feira, 15 de setembro de 2014

MySQL Performance


Muitas vezes, um administrador do servidor de banco de dados DBA tem pouco controle sobre os aplicativos que usam o MySQL e é difícil encontrar gargalos. Este blog não tem como objetivo resolver todos os problemas, e sim apresentar um pouco das minhas próprias experiências com o mecanismos de armazenamento de bando de dados MySQL (pelo menos para MyISAM e InnoDB mais populares).
Tenha em mente que eu não sou um especialista neste campo. Quando tenho problemas com MySQL, eu luto com todas as forças para solucionar o problema sem vitimas. Cada aplicação tem as suas próprias peculiaridades e você precisa encontrá-las via log de consultas lentas.
Antes de fazer qualquer coisa, tenha em mente que a instalação padrão do MySQL geralmente funciona bem. Infelizmente performances máximas não pode ser alcançadas sem os ajustes para aumentar o desempenho e estabilidade.
Antes que você possa fazer qualquer coisa, você precisa habilitar o log de consultas lentas.
Execute:
# touch /var/log/slow-query.log 

para criar o arquivo slow-query.log
log-slow-queries = /var/log/slow-query.log long_query_time = 4 log-queries-not-using-indexes
(para o MySQL 5.0.x)
/etc/my.cnf (dentro [mysqld] ) e reinicie o mysql. Espere pelo menos 24-48 horas antes de prosseguir para a próxima etapa.
High performance tuning scripts
Mysqltuner
MySQLTuner é um script escrito em Perl que tem como objetivo ajudá-lo com as configuração do MySQL fazendo recomendações para aumentar a performance e estabilidade.
# wget mysqltuner.pl
# chmod +x mysqltuner.pl
# ./mysqltuner.pl
Leia as recomendações em Output e tente segui-las.
Tuning-primer
Tuning-primer é outro roteiro que leva informações de SHOW STATUS LIKE e SHOW VARIABLES LIKE para produzir recomendações legíveis para as variáveis de ajuste do servidor.
# wget http://www.day32.com/MySQL/tuning-primer.sh
# ./tuning-primer.sh
Além disso, ler a saída e tentar ver o que você pode fazer para resolver os problemas. Tenha em mente que você precisa reiniciar o mysql depois de adicionar algo ao arquivo / etc / my.cnf. No caso de algo der errado, verifique o log mysql (/var/log/mysqld.log).
MyTOP
Mytop é uma ferramenta baseada em console (não-gui) para monitorar as linhas e o desempenho geral de um MySQL
Para instalar o MyTop:
# wget http://jeremy.zawodny.com/mysql/mytop/mytop-1.6.tar.gz
# tar -xvzf mytop-1.6.tar.gz
# cd mytop-1.6
# perl Makefile.PL
# make
# make install
No caso de algumas bibliotecas Perl estarem faltando, você deve instalá-los via CPAN.
Por exemplo, ReadKey é necessário e você pode obtê-lo via cpan.
# cpan (pressione Enter várias vezes até chegar shell cpan)
#cpan> install Term::ReadKey
#cpan> quit
Exemplo: # mytop -d DATABASE -u USERNAME -p PASSWORD (troque os valores de DATABASE, USERNAME e PASSWORD)

MySQLReport
MysqlReport faz um relatório amigável de importantes valores do estado do MySQL. O MysqlReport transforma um simples comando como ¿SHOW STATUS¿ em uma maneira fácil de ler o relatório fornecendo uma compreensão profunda de como o MySQL está sendo executado. MysqlReport é uma alternativa melhor (e praticamente a única alternativa) para interpretar manualmente SHOW STATUS.
# wget http://hackmysql.com/mysqlreport
# chmod +x mysqlreport
# ./mysqlreport --user root --password

Nenhum comentário:

Postar um comentário