Olá,

2010/3/16 José Carlos Messias <[email protected]>

> Boa Tarde,
>
> Estou precisando de algumas dicas para melhorar a performance do meu

servidor, que é utilizando por uma aplicação em php.
>

O seu banco está apresentando problemas de lentidão?

Qual o tipo de aplicação OLTP ou OLAP?

Este servidor é um servidor dedicado ou roda mais alguma aplicação?


Tenho em média 150 conexões no apache, pegando informações do banco
>
> Rodei o seguinte comando no servidor apache e me retornou assustadores
> 1996 conexões ou estou enganado:
> netstat -plan|grep :5432|awk {'print $5'} | cut -d: -f 1 | sort | uniq
> -c | sort -nk 1
>
> O mesmo comando no servidor postgresql retorna 138
>
> Tenho um servidor DELL 2900, com 4 HDs em Raid 10, 8 GB de Ram,
> com 2 processadores quad core Intel(R) Xeon(R) CPU   E5440  @ 2.83GHz
>
> monitoramento via mrtg indica 67% de uso do processador e 30% de
> memoria no maior pico
>
> saida do comando top
> top - 12:26:21 up 47 days, 23:12,  2 users,  load average: 3.87, 4.34, 4.10
> Tasks: 250 total,   6 running, 244 sleeping,   0 stopped,   0 zombie
> Cpu(s):  9.0%us,  3.7%sy,  0.0%ni, 76.5%id, 10.1%wa,  0.1%hi,  0.5%si,
>  0.0%st
> Mem:   8186412k total,  8139220k used,    47192k free,    36932k buffers
> Swap:  9767480k total,     4584k used,  9762896k free,  6883780k cached
>
> segue arquivo postgresql.conf
> cat /etc/postgresql/8.3/main/postgresql.conf
>
> data_directory = '/var/lib/postgresql/8.3/main'
> hba_file = '/etc/postgresql/8.3/main/pg_hba.conf'
> ident_file = '/etc/postgresql/8.3/main/pg_ident.conf'
> external_pid_file = '/var/run/postgresql/8.3-main.pid'
> listen_addresses = '*'
> port = 5432
> unix_socket_directory = '/var/run/postgresql'
> ssl = false
>
> checkpoint_segments = 16
> checkpoint_completion_target = 0.9
> wal_buffers = 8MB
>
> max_connections = 550
>

Existe a necessidade de um max_connections tão alto? Qual o máximo de
conexões simultâneas que você espera para esta base?

> shared_buffers = 1920MB
>

No shared_buffers eu colocaria algo próximo de 20-25% da sua memória RAM.


> work_mem = 16MB
> maintenance_work_mem = 480MB
> max_fsm_pages = 245760
> max_fsm_relations = 2100
> log_statement = 'all'
>
> log_line_prefix = '%t '
> datestyle = 'iso, dmy'
>
> lc_messages = 'pt_BR.UTF-8'
> lc_monetary = 'pt_BR.UTF-8'
> lc_numeric = 'pt_BR.UTF-8'
> lc_time = 'pt_BR.UTF-8'
> default_text_search_config = 'pg_catalog.portuguese'
>
> autovacuum = off
> log_autovacuum_min_duration = -1
>
> synchronous_commit = on
> wal_buffers = 8MB
>
> default_statistics_target = 10
>
> constraint_exclusion = off
>

Senti falta do parâmetro effective_cache_size.

Você já deu uma verificada na utilização dos seus índices?

Qual a frequência que você roda o processo de vacuum e analyze?


_______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>


[]s
-- 
JotaComm
http://jotacomm.wordpress.com
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a