Tunning-Mysql

De Wiki Projeto Root
Revisão de 21h17min de 19 de fevereiro de 2026 por Diegocosta (discussão | contribs)
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para navegação Ir para pesquisar

Sobre

Olá! Visitante, reunimos aqui, informações sobre o processo de Tunning no Mysql, este procedimento tende a aumentar o desempenho de leitura e escrita em Banco, assim aumentando a performance geral do sistema de Banco de Dados em Mysql. Estes ajustes podem auxiliar em momentos que algum sistema ou rede tenham gargalo, ou até mesmo evita um upgrade desnecessário de infra.

Guia Completo de Tunning e Monitoramento de MySQL

Introdução

Este guia reúne todas as etapas para otimizar e monitorar servidores MySQL modernos (5.7 ou 8.0), com foco em:

  • Aumentar a performance de leitura e escrita
  • Reduzir gargalos
  • Evitar upgrades desnecessários de infraestrutura
  • Coletar métricas em tempo real e histórico

As práticas incluem uso do **MySQLTuner**, ajustes no arquivo de configuração e monitoramento contínuo com **Performance Schema** e **PMM (Percona Monitoring and Management)**.

MySQLTuner

O MySQLTuner é um script em Perl que analisa o estado atual do MySQL e sugere ajustes de performance.

Download

wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/mysqltuner.pl -O mysqltuner.pl
chmod +x mysqltuner.pl

# Opcional: auditoria de senhas básicas
wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/basic_passwords.txt -O basic_passwords.txt

Executar análise

perl mysqltuner.pl

O script gera recomendações de:

  • Buffers e caches
  • Conexões
  • Queries e waits
  • Segurança do MySQL

Ajustes de Configuração

Local do arquivo

  • Ubuntu/Debian: /etc/mysql/mysql.conf.d/mysqld.cnf
  • CentOS/RHEL: /etc/my.cnf

Exemplo de abertura:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Valores recomendados por RAM

Variável 8 GB RAM 16 GB RAM 32 GB RAM Observações
tmp_table_size 64M 128M 256M Buffers temporários para tabelas HEAP/Temp
max_heap_table_size 64M 128M 256M Igual a tmp_table_size
innodb_buffer_pool_size 2G 8G 16G Cerca de 70-80% da RAM dedicada ao MySQL
innodb_buffer_pool_instances 1 4 8 Para pools grandes, aumenta paralelismo
innodb_log_file_size 256M 512M 1G Total log files ≈ 25% do buffer pool
performance_schema ON ON ON Ativar para diagnósticos avançados
max_connections 200 300 400 Ajustar conforme número de usuários
query_cache_size 0 0 0 Ignorado no MySQL 8.0
query_cache_type 0 0 0 Ignorado no MySQL 8.0

Exemplo de bloco em mysqld.cnf

[mysqld]
tmp_table_size = 128M
max_heap_table_size = 128M
innodb_buffer_pool_size = 8G
innodb_buffer_pool_instances = 4
innodb_log_file_size = 512M
performance_schema = ON
max_connections = 300
query_cache_size = 0
query_cache_type = 0

Aplicar alterações

sudo systemctl restart mysql

Após reiniciar, execute novamente o MySQLTuner para validar os ajustes.

Monitoramento Contínuo

Performance Schema (PFS)

O Performance Schema coleta métricas detalhadas sobre queries, locks, buffers e tempos de execução.

Ativar no arquivo de configuração:

[mysqld]
performance_schema=ON

Reinicie o MySQL:

sudo systemctl restart mysql

Consultas úteis:

-- Queries mais pesadas
SELECT *
FROM performance_schema.events_statements_summary_by_digest
ORDER BY AVG_TIMER_WAIT DESC
LIMIT 10;

-- Esperas por locks
SELECT *
FROM performance_schema.events_waits_summary_global_by_event_name
ORDER BY SUM_TIMER_WAIT DESC;

Ajuste `performance_schema_max_table_instances` e `performance_schema_max_digest_length` se houver muita carga.

PMM (Percona Monitoring and Management)

PMM pode ser instalado nativamente no servidor Linux.

1. Baixe o pacote do PMM Server (exemplo para Debian/Ubuntu): OBS: Acessar o site e baixar a versão mais atual.

wget https://www.percona.com/downloads/pmm2/pmm2-server/pool/main/p/pmm2-server/pmm2-server_VERSION_all.deb
sudo dpkg -i pmm2-server_VERSION_all.deb

2. Instale o PMM Client no servidor MySQL:

sudo apt install pmm2-client

3. Configure o PMM Client para conectar ao PMM Server:

pmm-admin config --server-url=https://admin:admin@IP_DO_PMM_SERVER
pmm-admin add mysql --username=root --password=SEU_PASSWORD

4. Acesse o PMM Server pelo navegador:

  • IP do servidor PMM, porta 80
  • Dashboards mostram:
 * Queries lentas
 * Uso de CPU e memória
 * Locks e waits
 * Throughput de transações  
  • Alertas podem ser configurados via Grafana

Dicas Finais

  • Ajuste os valores conforme memória disponível e carga real.
  • Monitore o impacto por algumas horas/dias antes de aplicar em produção.
  • Use Performance Schema para análises rápidas e PMM para monitoramento contínuo.
  • Evite desativar proteções nativas ou usar parâmetros obsoletos.