[Pgpool-general] pgpool problems

Tatsuo Ishii t-ishii at sra.co.jp
Wed Feb 23 23:19:36 GMT 2005


> Hi all,
> 
> we are running a large website with postgresql as backend and php as 
> frontend.
> 
> Postgresql is running in version 7.4.6 on a dual-xeon (4GB RAM, Debian 
> woody) with max connections set to 500. We are reaching this limit 
> during peak hours (we use php with pg_pconnect).
> 
> For lowering the overhead managed by postgresql I installed 
> pgpool-2.5.1. I removed -i from postgresql startup, configured pgpool to 
> listen to my main ip:5432 (not localhost nor unix socket) and confirmed 
> that with netstat.
> 
> When letting the webservers connect to the database (with pg_pconnect or 
> pg_connect) everything works fine for some minutes. After around 5 
> minutes ps ax only show idle postgres connections, the load on the 
> server goes down and NOTHING happens at all. The website just stalls. 
> Seems like pgpool just hangs.
> 
> my config looks like this:
> listen_addresses = 'xxx.xxx.xxx.xxx'
> port = 5432
> socket_dir = '/var/run' #/tmp is occupied by pgsql
> backend_host_name = ''
> backend_port = 5432
> backend_socket_dir = '/tmp'
> secondary_backend_host_name = ''
> secondary_backend_port = 0
> num_init_children = 64
> max_pool = 10
> child_life_time = 300
> connection_life_time = 0
> logdir = '/tmp'
> replication_mode = false
> replication_strict = true
> replication_timeout = 5000
> load_balance_mode = false
> weight_master = 0.5
> weight_secondary = 0.5
> replication_stop_on_mismatch = false
> reset_query_list = 'ABORT; RESET ALL; SET SESSION AUTHORIZATION DEFAULT'
> print_timestamp = true
> master_slave_mode = false
> connection_cache = true
> health_check_timeout = 20
> health_check_period = 0
> health_check_user = 'nobody'
> 
> Any hints?

pg_pconnect will eat up all pgpool child processes(number of them is
64, in your case). If you want to keep using pg_pconnect, you need to
increase num_init_chidren until it exceeds number of possible Apache
child processes (probably this is defined by MaxClients directive in
httpd.conf).

Or changing all pg_pconnect calls to pg_connect should solve your
problem.
--
Tatsuo Ishii


More information about the Pgpool-general mailing list