[Pgpool-general] pgpool-II 2.1 beta1 release

Nico -telmich- Schottelius nico-pgpool at schottelius.org
Tue Mar 18 11:02:59 UTC 2008


Yoshiyuki Asaba [Tue, Mar 18, 2008 at 03:16:41PM +0900]:
> From: Nico Schottelius <nico-pgpool at schottelius.org>
> Subject: [Pgpool-general] pgpool-II 2.1 beta1 release
> Date: Mon, 17 Mar 2008 17:06:34 +0100
> 
> > I am runnig 2.1beta1 right now and it looks good.
> > Though we still have the multistatement issue:
> 
> It is a restriction. pgpool can't process mutistatement correctly.
> You need to separate the query.
> 
>   PQexec("SET DateStyle=ISO");
>   PQexec("SELECT oid, ...");

"Can't" as in

   - currently not
   - will never

?

> [...]
> I do a performance test on pgpool-II 2.1 beta1 and pgpool-II 1.x.
> 
> * pgpoo.conf

Attached mine below [0]

> * Database
> 
>   % createdb -p 9999 bench
>   % pgbench -p 9999 -i bench

same here, only -p 5433

> * Test result
> pgpool-II 1.x:

[21:51] u0264:httperf-0.9.0# //usr/lib/postgresql/8.3/bin/pgbench -h 62.65.136.75 -U postgres -c 32 -t 80000 -S -p 5433 pgbenchpgpool                                                                                     
starting vacuum...end.
transaction type: SELECT only
scaling factor: 1
number of clients: 32
number of transactions per client: 80000
number of transactions actually processed: 2560000/2560000
tps = 47940.049769 (including connections establishing)
tps = 49154.382375 (excluding connections establishing)
[21:53] u0264:httperf-0.9.0# 

[21:57] u0264:httperf-0.9.0# //usr/lib/postgresql/8.3/bin/pgbench -h 62.65.136.75 -U postgres -c 64 -t 100000 -S -p 5433 pgbenchpgpool                                                                                      
starting vacuum...end.
transaction type: SELECT only
scaling factor: 1
number of clients: 64
number of transactions per client: 100000
number of transactions actually processed: 6400000/6400000
tps = 56045.403082 (including connections establishing)
tps = 57408.682408 (excluding connections establishing)
[21:59] u0264:httperf-0.9.0# 


[21:59] u0264:httperf-0.9.0# //usr/lib/postgresql/8.3/bin/pgbench -h 62.65.136.75 -U postgres -c 128 -t 100000 -S -p 5433 pgbenchpgpool                                                                                     

starting vacuum...end.
transaction type: SELECT only
scaling factor: 1
number of clients: 128
number of transactions per client: 100000
number of transactions actually processed: 12800000/12800000
tps = 66373.104647 (including connections establishing)
tps = 68257.563474 (excluding connections establishing)

==> pgpool-server is totally cpu used, as it runs on a postgres instance, partiaily

Removing the postgres backend, that runs on the pgpool host, thus the next test is with
two nodes only:

[22:03] u0264:httperf-0.9.0# //usr/lib/postgresql/8.3/bin/pgbench -h 62.65.136.75 -U postgres -c 128 -t 100000 -S -p 5433 pgbenchpgpool
starting vacuum...end.
transaction type: SELECT only
scaling factor: 1
number of clients: 128
number of transactions per client: 100000
number of transactions actually processed: 12800000/12800000
tps = 48840.482307 (including connections establishing)
tps = 49887.150977 (excluding connections establishing)
[22:10] u0264:httperf-0.9.0# 


> pgpool-II 2.1 beta:

3 postgres Servers, 1 pgpool-II 2.1 beta1:

[10:32] u0264:ipv4# //usr/lib/postgresql/8.3/bin/pgbench -h 62.65.136.75 -p 5433 -U postgres -c 32 -S -t  100000  pgbenchpgpool                                                                                  
starting vacuum...end.
transaction type: SELECT only
scaling factor: 1
number of clients: 32
number of transactions per client: 100000
number of transactions actually processed: 3200000/3200000
tps = 39802.896554 (including connections establishing)
tps = 40497.604187 (excluding connections establishing)
[10:53] u0264:ipv4# 

[10:53] u0264:ipv4# //usr/lib/postgresql/8.3/bin/pgbench -h 62.65.136.75 -p 5433 -U postgres -c 64 -S -t  100000  pgbenchpgpool                                                                                 
starting vacuum...end.
transaction type: SELECT only
scaling factor: 1
number of clients: 64
number of transactions per client: 100000
number of transactions actually processed: 6400000/6400000
tps = 51206.276661 (including connections establishing)
tps = 52350.443290 (excluding connections establishing)
[10:56] u0264:ipv4#

==> IRQs on load balancer from the nic take 80% of one cpu


[16:57] u0264:ipv4# //usr/lib/postgresql/8.3/bin/pgbench -h 62.65.136.75 -p 5433 -U postgres -c 128 -S -t  100000  pgbenchpgpool
starting vacuum...end.
transaction type: SELECT only
scaling factor: 1
number of clients: 128
number of transactions per client: 100000
number of transactions actually processed: 12800000/12800000
tps = 52311.577285 (including connections establishing)
tps = 53461.356352 (excluding connections establishing)

==> IRQs on load balancer from the nic take 100% of one cpu

Without -S:

[17:17] u0264:ipv4# //usr/lib/postgresql/8.3/bin/pgbench -h 62.65.136.75 -p 5433 -U postgres -c 32 -t  10000  pgbenchpgpool
starting vacuum...end.
transaction type: TPC-B (sort of)
scaling factor: 1
number of clients: 32
number of transactions per client: 10000
number of transactions actually processed: 320000/320000
tps = 103.990031 (including connections establishing)
tps = 104.036163 (excluding connections establishing)

> Single Server:

One Server, without -S does about 240 tps:

[20:57] u0264:httperf-0.9.0# //usr/lib/postgresql/8.3/bin/pgbench -h 62.65.136.75 -U postgres -c 32 -t 500 pgbench
starting vacuum...end.
transaction type: TPC-B (sort of)
scaling factor: 1
number of clients: 32
number of transactions per client: 500
number of transactions actually processed: 16000/16000
tps = 237.309218 (including connections establishing)
tps = 240.842071 (excluding connections establishing)


All servers are Dell 1955 blade, 8 GiB RAM, 8* 2.33GHz XEON, Raid 1 on 15k sas hds.


Sincerly

Nico


[0]: pgpool.conf

[10:37] u0260:~# grep -v -e '^#' -e '^$' /usr/local/etc/pgpool.conf
listen_addresses = '*'
port = 5433
pcp_port = 9898
socket_dir = '/var/run/postgresql'
pcp_socket_dir = '/var/run/postgresql'
backend_socket_dir = '/var/run/postgresql'
pcp_timeout = 10
num_init_children = 128
max_pool = 4
child_life_time = 300
connection_life_time = 0
child_max_connections = 0
authentication_timeout = 60
logdir = '/var/run/postgresql'
replication_mode = true
replication_strict = true
replication_timeout = 5000
load_balance_mode = true
replication_stop_on_mismatch = false
replicate_select = 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'
insert_lock = false
ignore_leading_white_space = false
log_statement = false
log_connections = false
log_hostname = false
parallel_mode = false
enable_query_cache = false
pgpool2_hostname = ''
system_db_hostname = 'localhost'
system_db_port = 5432
system_db_dbname = 'pgpool'
system_db_schema = 'pgpool_catalog'
system_db_user = 'pgpool'
system_db_password = ''
backend_hostname0 = '62.65.136.77'
backend_port0 = 5432
backend_weight0 = 1
backend_hostname1 = '62.65.136.78'
backend_port1 = 5432
backend_weight1 = 1
backend_hostname2 = '62.65.136.76'
backend_port2 = 5432
backend_weight2 = 1
enable_pool_hba = false


-- 
Think about Free and Open Source Software (FOSS).
http://nico.schottelius.org/documentations/foss/the-term-foss/

PGP: BFE4 C736 ABE5 406F 8F42  F7CF B8BE F92A 9885 188C
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : http://pgfoundry.org/pipermail/pgpool-general/attachments/20080318/f4320536/attachment.bin 


More information about the Pgpool-general mailing list