O documento discute estratégias para deploy e performance do MySQL, incluindo: (1) instalação do MySQL e Zabbix, (2) particionamento de tabelas do banco de dados, e (3) técnicas de monitoramento e backup para melhorar o desempenho.
6. www.jlcp.com.br
Instalação no CentOS 7.5
• MySQL 5.7 2x+ 5.6
• Download e instalação do repositório:
• Instalação do MySQL
• Alteração da senha root do MySQL
7. www.jlcp.com.br
Discos e locais de armazenamento
• Discos de alta performance
• Volume dedicado para o MySQL
• Tuning no FSTAB
nobarriers, noatime, nodirtime
• Opcional: Alteração dos locais padrão de diretórios:
Diretório de dados
Innodb System (ibdata1)
Bin Logs
InnoDB Logs
Tablespaces InnoDB
8. www.jlcp.com.br
Tuning MySQL - my.cnf
• innodb_file_per_table = 1
• innodb_buffer_pool_size = 75% ram
• innodb_buffer_pool_instances= 8
• innodb_flush_log_at_trx_commit= 2
• innodb_log_file_size= 256M
• wait_timeout = 31536000
• net_write_timeout = 360
• net_read_timeout = 360
• innodb_write_io_threads = 4
• innodb_read_io_threads = 4
Binlog:
• server_id = 1l
• log-bin = /var/lib/mysql/mysql-bin
• sync_binlog = 1
• expire_logs_days = 7
• gtid_mode = ON
• enforce-gtid-consistency = true
0
1
2
InnoDB grava os dados modificados no arquivo
de log ib_log file e libera o arquivo de log a cada
segundo. (Sem commit).
Cada commit de transação, o Innodb irá gravar
para o log e então gravar no disco, ambientes
com discos mais lento pode ser um problema.
Menor número de transações.
InnoDB grava o buffer de log no arquivo de log
a cada commit, mas não grava os dados no
disco, innodb libera os dados uma vez a cada
segundo.
9. www.jlcp.com.br
Particionamento
• + > 100GB
• Disco sem
performance
• Housekeeper
• Tabelas:
history
history_str
history_uint
history_log
history_text
trends
trend_uint
10. https://zabbix.org/wiki/Docs/howto/mysql_partitioning
Simplificando o particionamento
• Criar uma tabela para gerenciar os períodos de armazenamento (Create
table);
• Inserir retenção na tabela (Insert Into);
• Particionar as tabelas (Alter Table);
• Procedure para criar as novas partições (Create Procedure);
• Procedure para diaria/mensal (Create Procedure);
• Procedure para deletar as tabelas antigas (Create Procedure);
• Crontab ou evento para deletar
• Desabilitar housekeeper history/trends
#8: A opção noatime informa ao sistema de arquivos para não registrar o tempo de último acesso aos arquivos, mas apenas a data de modificação. Esta opção reduz o número de gravações no disco e consequentemente aumenta também a sua duração.