Zabbix Conference LatAm 2016 - Andre Deo - Zabbix Brazil Community
Zabbix Performance Tuning
-
Upload
alessandro-silva -
Category
Technology
-
view
1.651 -
download
16
description
Transcript of Zabbix Performance Tuning
Por Alessandro Silva – [email protected]
ZABBIXPerformance Tuning
Por Alessandro Silva – [email protected]
Sobre o palestrante
● Bacharel em Informática e Especialista em TI Aplicada a Educação pelo NCE/UFRJ.
● Pós-graduando em Gerência de Segurança da Informação – NCE/UFRJ
● Mais de 10 anos na indústria de TI
● Certificações: LPIC-3, RHCE, RHCSA, Novell CLA e DCTS, Zabbix Certified Specialist e Zabbix for Large Enviroments.
● Desde 2011 trabalhando com projetos de monitoração com Zabbix.
● Principais interesses:
– Linux e Certificações– Segurança– Zabbix– Drupal
Por Alessandro Silva – [email protected]
Agenda
● Arquitetura do Zabbix
● Performace tuning
● Como medir a performance
● Sintomas de baixa performance
● Problemas na implantação
● Tuning
– Banco de dados – Zabbix Server – Sistema Operacional
● Recomendações gerais
● Conteúdo extra
Por Alessandro Silva – [email protected]
Performance Tuning
É o ajuste realizado em um sistema computacional para melhorar o desempenho.
Análise de desempenho, comumente conhecido como PROFILING, é a investigação de comportamento de um sistema usando informações coletadas por uma ferramenta.
1. Avaliar o problema e estabelecer métricas que caracterizem o comportamento aceitável do sistema.
2. Mensurar a performance antes de qualquer intervenção.
3. Identificar gargalos no sistema a fim de concentrar os esforços em pontos críticos.
4. Fazer as modificações para remover esse gargalos.
5. Mensurar a performance do sistema após as modificações.
Por Alessandro Silva – [email protected]
Zabbix – Arquitetura
Dados
Dados
Dados
Dados
Pooler
Pooler
Pooler
Trapper
Trapper
History Syncer
History Syncer
Alertas
Escalation
Conf SyncOutros
Zabbix Frontend
Zabbix Database
Dados
Sem proxy e sem ambiente distribuído
Zabbix Server
Por Alessandro Silva – [email protected]
Métrica da performance
● NVPS
– Número de valores por segundo– Visível no dashboard
NVPS
Por Alessandro Silva – [email protected]
Performance Tuning
Hardware: CPU Quad Core, 8GB, RAID10 BBWC
Custo: R$ 6.500,00
● Zabbix pode entregar 1 milhão de valores por minuto ou cerca de 15.000 valores por segundo.
● Mesmo assim, poderíamos ter baixa performance.
Por Alessandro Silva – [email protected]
Fatores de baixa performance
● Tipo de itens, valores, SNMP v3, número de triggers
● Configurações de housekeeper
● Tamanho do banco de dados
● Número de usuários no frontend
● Complexidade das triggers
Por Alessandro Silva – [email protected]
Lento ou Rápido ?
Item Lento Rápido
Tamanho do banco Grande Encaixável em memória
Triggers min(),max(),avg() last(), nodata()
Coleta de dados Polling (SNMP, Sem agente,agente passivo)
Trapping (activeagents)
Tipo de dados Texto, string Numérico
Por Alessandro Silva – [email protected]
Performance x Número de hosts
Número de hosts Performance (VPS)
10 10
100 100
1000 1000
Número de hosts Performance (VPS)
10 100
100 1000
1000 10000
60 itens por host com frequência de coleta a cada 60 segundos
600 itens por host com frequência de coleta a cada 60 segundos
Por Alessandro Silva – [email protected]
Sintomas de baixa performance
● Zabbix com fila sem entregar os alarmes em tempo.
– Administration->Queue
● Frequente lentidão para gerar gráficos e dados em branco.
● Falso positivos de eventos que já não existem ou chegaram atrasados.
● Tempo de resposta do frontend (lentidão)
Por Alessandro Silva – [email protected]
Fila – Sua aliada!
Por Alessandro Silva – [email protected]
Performace: Problemas na implantação
● Uso de templates padrão
- Faça seu próprios templates
● Banco sem otimização
- Converse com seu DBA para tunar seu BD
● Configuração não otimizada
- Tuning nas configurações do Zabbix
● Housekeeper
● Uso de versões antigas
● Não otimização do Apache e PHP
Por Alessandro Silva – [email protected]
Buscando a evidência da baixa performance
Zabbix Server configuration file,zabbix_server.conf:
LogSlowQueries=1000
Por Alessandro Silva – [email protected]
Tuning das configurações | Zabbix Server
StartPollers=80StartPingers=10StartPollersUnreachable=80StartIPMIPollers=10StartTrappers=20StartDBSyncers=8
Por Alessandro Silva – [email protected]
Monitorando estatísticas internas
Por Alessandro Silva – [email protected]
Proxy – Distribuição de Carga
DadosPooler
Pooler
Pooler
Trapper
Trapper
History Syncer
History Syncer
Alertas
Escalation
Conf SyncOutros
Zabbix Frontend
Zabbix Database
Sem proxy e sem ambiente distribuído
Dados
Dados
Dados
Proxy
Dados
Proxy
DadosDados
Zabbix Server
Por Alessandro Silva – [email protected]
Performance tuning | Banco de Dados
A parte mais importante do Tuning!
● Use SGBD's rápidos – Mysql
● Versões estáveis de Bancos de dados
● Instale e configure utilizando o fonte para melhor performance
● Implemente performance tuning no banco
– Verifique a documentação do fabricante
● Para MySQL , utilize InnoDB
● Manter tabelas em diferentes discos
– 'history', 'history_str, 'items' 'functions', triggers', and 'trends' são as tabelas mais usadas.
Por Alessandro Silva – [email protected]
Particionamento de tabelas
● Dividir tabelas grandes em pequenas tabelas
● Faz sentido para:– history_*, trends*, events
● Benefícios– Fácil remoção de dados antigos
– Melhor performance
Por Alessandro Silva – [email protected]
Sem particionamento de tabelas
HistoryZabbix ServerZabbix Frontend
Por Alessandro Silva – [email protected]
Com particionamento de tabelas
HistoryZabbix Server
Zabbix Frontend
Partição 2012_01
Partição 2012_02
Partição 2012_03
Partição 2012_04
Por Alessandro Silva – [email protected]
Performance tuning | Hardware
● Utilizar CPU's rápidas
● Discos SCSI e SAS são melhores do que IDE E SATA
– Discos podem ser melhorados com HDPARM
● 15K RPM são melhores do que 10K RPM e 7200 RPM
– Se puder pagar, use uma storage!
● Usar discos rápidos (RAID 10)
● Utilize placas de rede rápidas (Gibabit)
● Quanto mais memória, melhor!
Por Alessandro Silva – [email protected]
Performance tuning | Sistema Operacional
● Utilizar versões mais recentes estáveis
● Excluir funcionalidades desnecessárias do kernel
● Tuning em parâmetros do kernel
● Memória
● CPU
Por Alessandro Silva – [email protected]
Checklist
● Estatísticas internas do servidor Zabbix
– Caso contrário, você não saberá nada sobre a performance.
● Configuração do Zabbix Server tunada
● Tuning no banco realizado
● Housekeeping desabilitado
– DisableHousekeeper=1
● Sistema Operacional atualizado
Por Alessandro Silva – [email protected]
Eu tentei de tudo e minha performance continua deixando a desejar ...
Execute todos os componentes em hardware separados!
Zabbix Server8 GB MemóriaCPU 8 núcleos
Zabbix Database16 GB MemóriaCPU 8 núcleos
Storage ou RAID 10
Zabbix Front-end4 GB MemóriaCPU 2 núcleos
Por Alessandro Silva – [email protected]
Performance tuning | Recomendações gerais
● Monitore somente os itens requeridos
● Ajuste o intervalo de coleta dos itens
– Intervalos curtos podem causar overload no servidor.
● Não utilizar templates padrão
● Desabilitar o Housekeeping
– Ou tunar os parâmetros do housekeeping
● Não monitorar parâmetros que retornem a mesma informação
● Não usar triggers muito complexas
Por Alessandro Silva – [email protected]
Leitura recomendada
● MySQL & PostgreSQL Performance Tuning Guides
● Table partitioning for Zabbix
– MySQL: zabbixzone.com
– PostgreSQL:
– http://www.zabbix.com/wiki/
● Zabbix Internal Checks
– http://blog.zabbix.com/– http://www.zabbix.com/documentation/
Por Alessandro Silva – [email protected]
Obrigado!
Alessandro Silva
E-mail: [email protected]: http://alessandrosillva.info/facebookTwitter: http://alessandrosilva.info/twitterLinkedin: http://alessandrosilva.info/linkedin