On 04-06-2016 12:13, Tales Costa wrote:
> Boa tarde,
>
> De uns dias para cá estou enfrentando alguns problemas com um servidor
> Postgresql + Zabbix. O pg está consumindo em muitos momentos 100% da CPU
> do server, ocasionando o aumento da temperatura da mesma.
>
> Como não tenho experiência alguma com postgresql, estou na dúvida se o
> problema é de hardware ou algo relacionado ao pg pois funciona
> perfeitamente antes de migrar o servidor fisicamente de lugar e
> atualizar a versão do PG e alguns outros pacotes.
>
> Observei que o aumento de CPU sempre ocorre quando é executado alguns
> "select". Segue imagem do htop.
>
> Segue algumas informações:
>
> $ /usr/lib/postgresql/9.1/bin/postgres -V
> postgres (PostgreSQL) 9.1.22
>
> $ uname -a
> Linux zabbix 3.2.0-4-amd64 #1 SMP Debian 3.2.78-1 x86_64 GNU/Linux
> # Testei também com a 4.6.1.
>
> $ ps aux | grep zabbixdb | wc -l
> 63
>
> $ cat /etc/postgresql/9.1/main/postgresql.conf | egrep -v ^#
>
> data_directory = '/var/lib/postgresql/9.1/main'# use data in another
> directory
> hba_file = '/etc/postgresql/9.1/main/pg_hba.conf'# host-based
> authentication file
> ident_file = '/etc/postgresql/9.1/main/pg_ident.conf'# ident
> configuration file
> external_pid_file = '/var/run/postgresql/9.1-main.pid'# write an extra
> PID file
> listen_addresses = '*'# what IP address(es) to listen on;
> port = 5432# (change requires restart)
> max_connections = 120# (change requires restart)
> unix_socket_directory = '/var/run/postgresql'# (change requires restart)
> ssl = true# (change requires restart)
> password_encryption = on
> log_line_prefix = '%t '# special values:
> autovacuum = on# Enable autovacuum subprocess? 'on'
> log_autovacuum_min_duration = -1# -1 disables, 0 logs all actions and
> autovacuum_max_workers = 1# max number of autovacuum subprocesses
> autovacuum_naptime = 1min# time between autovacuum runs
> datestyle = 'iso, dmy'
> lc_messages = 'pt_BR.UTF-8'# locale for system error message
> lc_monetary = 'pt_BR.UTF-8'# locale for monetary formatting
> lc_numeric = 'pt_BR.UTF-8'# locale for number formatting
> lc_time = 'pt_BR.UTF-8'# locale for time formatting
> default_text_search_config = 'pg_catalog.portuguese'
>
> #Restante está tudo default
>
> [...corte...]
>
Tales,
A configuração padrão do PostgreSQL é bem conservadora. Sugiro dar uma
olhada no pgconfig [1] para tentar um tuning inicial mais adequado do
que a configuração padrão.
Outro ponto que arrisco a pensar (por conta de coleta de monitoramento)
é que seu banco pode sofrer de estatísticas desatualizadas muito cedo
fazendo com que o planejador tome caminhos ruins para execução das
queries e por consequencia usando mais recursos do seu servidor. Tente
rodar um "VACUUM ANALYZE" no seu database e observe se ocorre uma
melhora e nos conte.
Att,
[1] http://www.pgconfig.org/
--
Fabrízio de Royes Mello Timbira - http://www.timbira.com.br/
PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
signature.asc
Description: OpenPGP digital signature
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral