Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Deploy MySQL e Performance Tuning - 3º Zabbix Meetup do Interior

378 Aufrufe

Veröffentlicht am

Apresentado por Jorge Pretel

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Deploy MySQL e Performance Tuning - 3º Zabbix Meetup do Interior

  1. 1. twitter.com/jorgepretel youtube.com/jorgepretel facebook.com/jorge.pretel.3 Jorge Pretel JLCP jorge@jlcp.com.br www.jlcp.com.br
  2. 2. Deploy MySQL e Performance
  3. 3. Agenda Agenda O que vamos bater um papo? ● Zabbix ● MySQL ● Particionamento ● Monitoramento do banco de dados ● Q/A
  4. 4. www.jlcp.com.br Arquitetura Zabbix ● Zabbix Server ● Zabbix Frontend ● Database ● Zabbix Proxy
  5. 5. www.jlcp.com.br MySQL ● Instalação ● Discos e Locais de armazenamento ● Tuning ● Particionamento ● Backup ● Monitoramento
  6. 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. 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. 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. 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. 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
  11. 11. www.jlcp.com.br Como funciona o particionamento?
  12. 12. www.jlcp.com.br Backup • > 100GB • myssqldump =/ • XtraBackup
  13. 13. www.jlcp.com.br Monitoramento • mysql -E -e "SHOW ENGINE INNODB STATUS” • mytop • innotop (stress Innodb) • workbench
  14. 14. Jorge Pretel JLCP jorge@jlcp.com.br Dúvidas?

×