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