Zabbix Documentation 5.0

3.04.04.45.0 (current)| In development:5.2 (devel)| Unsupported:1.82.02.22.43.23.44.2Guidelines

User Tools

Site Tools


pt:manual:appendix:performance_tuning

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pt:manual:appendix:performance_tuning [2019/10/07 06:35] (current)
Line 1: Line 1:
 +==== 10 Tuning de performance ====
  
 +<note important>​Este manual é um trabalho em progresso.</​note>​
 +
 +=== Visão geral ===
 +
 +É muito importante que o Zabbix esteja ajustado apropriadamente para a sua melhor performance.
 +
 +=== Hardware ===
 +
 +Definições gerais de hardware: ​
 +
 +  * Utilize o processador mais rápido que tiver disponível
 +  * SCSI ou SAS é melhor que IDE (a performance de discos IDE podem ser melhoradas significativamente pelo utilitário hdparm) e SATA
 +  * 15K RPM é melhor que 10K RPM que é melhor que 7200 RPM...
 +  * Utilize armazenamento de RAID rápido
 +  * Utilize adaptadores fast Ethernet
 +  * Quanto mais memória, melhor
 +
 +===  Sistema operacional ===
 +
 +  * Utilize a última versão estável do SO
 +  * Não instale / remova funcionalidades não necessárias do kernel
 +  * Otimize os parâmetros do kernel
 +
 +=== Parâmetros de configuração do Zabbix ===
 +
 +Vários parâmetros de configuração do Zabbix podem ser otimizados para melhorar a performance. ​
 +
 +== zabbix_server ==
 +
 +**StartPollers**
 +
 +Regra geral - mantenha este parâmetro no menor valor possível, cada instância adicional do Zabbix Server adiciona seu próprio '​overhead',​ ao mesmo tempo, o paralelismo é aumentado. O melhor número de instâncias é obtido quando a fila, na média, contêm o mínimo de parâmetros (idealmente 0 em algum momento). Este valor pode ser monitorado pelas verificações internas do Zabbix ''​zabbix[queue]''​. ​
 +
 +<​note>​Consulte a seção [[#​see_also|"​Veja também"​]] ao final desta página para maiores informações sobre como otimizar a quantidade de processos do Zabbix.</​note>​
 +
 +**DebugLevel**
 +
 +O melhor valor é 3. 
 +
 +**DBSocket**
 +
 +Apenas para MySQL. É recomendado utilizar **DBSocket** para se conectar ao banco, é a forma mais rápida e mais segura.
 +
 +
 +=== Tecnologia de banco de dados ===
 +
 +Esta é, provavelmente,​ a This is probably the most important part of Zabbix tuning. Zabbix heavily depends on the availability and performance of database engine.
 +
 +  * use a tecnologia mais rápida, ex. MySQL
 +  * use versões estáveis
 +  * recompile a partir dos códigos fonte o MySQL ou PostgreSQL para obter a máxima performance
 +  * use a documentação de tuning do MySQL ou PostgreSQL
 +  * para MySQL, utilize a estrutura de tabelas
 +  * o Zabbix funciona pelo menos 1.5 vezes mais rápido com InnoDB (quando comparado com MyISAM). Isso ocorre por conta do aumento de paralelelismo. Por outro lado, InnoDB precisa de mais CPU. 
 +  * otimize o banco de dados periodicamente para sua melhor performance. ​
 +  * mantenha as tabelas de bancos de dados em discos diferentes
 +  * As tabelas '​history',​ '​history_str,​ '​items'​ '​functions',​ triggers',​ e '​trends'​ são as mais pesadas. ​
 +  * Para grandes ambientes, mantenha os arquivos temporários do MySQL em armazenamento tmpfs
 +
 +=== Avisos gerais ===
 +
 +  * Monitore os parâmetros necessários somente
 +  * otimize o '​Intervalo entre verificações'​ de todos os itens. Quanto menor o intervalo, menor para os gráficos e pior para a performance do Zabbix
 +  * otimize os parâmetros,​ não os deixe com seus valores padrões (inclusive os templates fornecidos pela Zabbix)
 +  * otimize os parâmetros de limpeza de dados
 +  * não monitorem parâmetros que retornam a mesma informação (ex. memora livre, memoria usada, memória total... somente 2 destes são necessários).
 +  * evite triggers com expressões envolvendo grandes períodos de tempo. Por exemplo, ''​max(3600)''​ será calculada de forma significativamente mais lenta que ''​max(60)''​.
 +
 +=== Acompanhe a performance dos processos do Zabbix com o "​ps"​ e o "​top"​ ===
 +
 +O Zabbix 2.2 introduziu uma nova característica,​ os processos mudam suas linhas de comando para exibir a atividade atual:
 +
 +  UID        PID  PPID  C STIME TTY      TIME CMD
 +  zabbix22 ​ 4584     ​1 ​ 0 14:55 ?    00:00:00 zabbix_server -c /​home/​zabbix22/​zabbix_server.conf
 +  zabbix22 ​ 4587  4584  0 14:55 ?    00:00:00 zabbix_server:​ configuration syncer [synced configuration in 0.041169 sec, idle 60 sec]
 +  zabbix22 ​ 4588  4584  0 14:55 ?    00:00:00 zabbix_server:​ db watchdog [synced alerts config in 0.018748 sec, idle 60 sec]
 +  zabbix22 ​ 4608  4584  0 14:55 ?    00:00:00 zabbix_server:​ timer #1 [processed 3 triggers, 0 events in 0.007867 sec, 0 maint.periods in 0.005677 sec, idle 30 sec]
 +  zabbix22 ​ 4609  4584  0 14:55 ?    00:00:00 zabbix_server:​ timer #2 [processed 2 triggers, 0 events in 0.004209 sec, idle 30 sec]
 +  zabbix22 ​ 4637  4584  0 14:55 ?    00:00:01 zabbix_server:​ history syncer #4 [synced 35 items in 0.166198 sec, idle 5 sec]
 +  zabbix22 ​ 4657  4584  0 14:55 ?    00:00:00 zabbix_server:​ vmware collector #1 [updated 0, removed 0 VMware services in 0.000004 sec, idle 5 sec]
 +  zabbix22 ​ 4670     ​1 ​ 0 14:55 ?    00:00:00 zabbix_proxy -c /​home/​zabbix22/​zabbix_proxy.conf
 +  zabbix22 ​ 4673  4670  0 14:55 ?    00:00:00 zabbix_proxy:​ configuration syncer [synced config 15251 bytes in 0.111861 sec, idle 60 sec]
 +  zabbix22 ​ 4674  4670  0 14:55 ?    00:00:00 zabbix_proxy:​ heartbeat sender [sending heartbeat message success in 0.013643 sec, idle 30 sec]
 +  zabbix22 ​ 4688  4670  0 14:55 ?    00:00:00 zabbix_proxy:​ icmp pinger #1 [got 1 values in 1.811128 sec, idle 5 sec]
 +  zabbix22 ​ 4690  4670  0 14:55 ?    00:00:00 zabbix_proxy:​ housekeeper [deleted 9870 records in 0.233491 sec, idle 3599 sec]
 +  zabbix22 ​ 4701  4670  0 14:55 ?    00:00:08 zabbix_proxy:​ http poller #2 [got 1 values in 0.024105 sec, idle 1 sec]
 +  zabbix22 ​ 4707  4670  0 14:55 ?    00:00:00 zabbix_proxy:​ history syncer #4 [synced 22 items in 0.008565 sec, idle 5 sec]
 +  zabbix22 ​ 4738     ​1 ​ 0 14:55 ?    00:00:00 zabbix_agentd -c /​home/​zabbix22/​zabbix_agentd.conf
 +  zabbix22 ​ 4739  4738  0 14:55 ?    00:00:00 zabbix_agentd:​ collector [idle 1 sec]
 +  zabbix22 ​ 4740  4738  0 14:55 ?    00:00:00 zabbix_agentd:​ listener #1 [waiting for connection]
 +  zabbix22 ​ 4741  4738  0 14:55 ?    00:00:00 zabbix_agentd:​ listener #2 [processing request]
 +
 +O processo principal é uma exceção. A sua atividade atual não é apresentada para facilitar sua identificação entre as múltiplas instâncias.
 +
 +Esta funcionalidade não é implementada no Windows.
 +
 +Se o nível de log for definido apra **DebugLevel=4** estas atividades e mensagens de estatísticas serão gravadas no log.
 +
 +== Linux ==
 +
 +Em ambientes Linux o comando ''​ps''​ pode ser utilizado em conjunto com o ocmando ''​watch''​ para observar como o Zabbix está indo.
 +Por exemplo, para rodar o comando ''​ps''​ 5 vezes por segundo para ver as atividades dos processos:
 +  watch -n 0.2 ps -fu zabbix
 +Para mostrar apenas os processos do Zabbix Proxy/​Agent:​
 +  watch -tn 0.2 'ps -f -C zabbix_proxy -C zabbix_agentd'​
 +Para mostrar apenas o processo de sincronismo do histórico:
 +  watch -tn 0.2 'ps -fC zabbix_server | grep history'​
 +
 +O comando ''​ps''​ produz uma saída longa (aproximadamente 190 colunas), algumas mensagens de ativiades serão longas. Se o seu terminal for menor que 190 colunas de texto você pode tentar
 +  watch -tn 0.2 'ps -o cmd -C zabbix_server -C zabbix_proxy -C zabbix_agentd'​
 +para exibir apenas as linhas de comando sem UID, PID, start time etc.
 +
 +O comando ''​top''​ também pode ser utilizado para observar a performance do Zabbix. Pressionando a tecla '​c'​ no ''​top''​ exibe os processos com seus comandos.
 +Em nossos testes o ''​top''​ e ''​atop''​ apresentam corretamente as mudanças de atividades nos processos do Zabbix mas o ''​htop''​ não mostrou as atividades.
 +
 +== BSD ==
 +
 +Se o comando ''​watch''​ não estive instalado pode-se conseguir efeito similar com o comando abaixo
 +  while [ 1 ]; do ps x; sleep 0.2; clear; done
 +
 +== AIX, HP-UX ==
 +
 +Se o comando ''​watch''​ não estiver disponível,​ pode-se tentar
 +  while [ 1 ]; do ps -fu zabbix; sleep 1; clear; done
 +
 +== Solaris ==
 +
 +Por padrão o comando ''​ps''​ não mostra as mudanças de atividades. Uma opção é usar o ''/​usr/​ucb/​ps''​ em seu lugar.
 +Se o comando ''​watch''​ não estiver instalado, a periodicidade de atualização da lista de processos pode ser vista com
 +  while [ 1 ]; do /usr/ucb/ps gxww; sleep 1; clear; done
 +No Solaris 11, o comando ''​sleep''​ aceita frações de 1 segundo (e.g. ''​sleep 0.2''​).
 +
 +==== Veja também ​ ====
 +  - [[http://​blog.zabbix.com/​monitoring-how-busy-zabbix-processes-are/​457|How to configure optimal count of zabbix processes]]
 +