Hi,
I'm having a strange performance result on a new database server
compared to my simple desktop.
The configuration of the new server :
- OS : GNU/Linux Debian Etch x86_64
- kernel : Linux 2.6.26-2-vserver-amd64 #1 SMP Sun Jun 20 20:40:33
UTC 2010 x86_64 GNU/Linux
(tests are on the "real server", not on a vserver)
- CPU : 2 x Six-Core AMD Opteron(tm) Processor 2427 @ 2.20GHz
- RAM : 32 Go
The configuration of my desktop pc :
- OS : GNU/Linux Debian Testing i686
- kernel : Linux 2.6.32-5-686 #1 SMP Tue Jun 1 04:59:47 UTC 2010
i686 GNU/Linux
- CPU : Intel(R) Core(TM)2 Duo CPU E7500 @ 2.93GHz
- RAM : 2 Go
On each configuration, i've compiled Postgresql 8.4.4 (simple
./configuration && make && make install).
On each configuration, i've restore a little database (the compressed
dump is 33Mo), here is the output of "\d+" :
Schema | Name | Type | Owner |
Size | Description
--------+----------------------------+----------+-------------+------------+-------------
public | article | table | indexwsprem | 77
MB |
public | article_id_seq | sequence | indexwsprem | 8192
bytes |
public | evt | table | indexwsprem | 8192
bytes |
public | evt_article | table | indexwsprem | 17
MB |
public | evt_article_id_seq | sequence | indexwsprem | 8192
bytes |
public | evt_id_seq | sequence | indexwsprem | 8192
bytes |
public | firm | table | indexwsprem | 1728
kB |
public | firm_article | table | indexwsprem | 17
MB |
public | firm_article_id_seq | sequence | indexwsprem | 8192
bytes |
public | firm_id_seq | sequence | indexwsprem | 8192
bytes |
public | publication | table | indexwsprem | 64
kB |
public | publication_article | table | indexwsprem | 0
bytes |
public | publication_article_id_seq | sequence | indexwsprem | 8192
bytes |
public | publication_id_seq | sequence | indexwsprem | 8192
bytes |
(14 rows)
On each configuration, postgresql.conf are the same and don't have been
modified (the shared_buffer seems enought for my simple tests).
I've enabled timing on psql, and here is the result of different
"simple" query (executed twice to use cache) :
1- select count(*) from firm;
server x64 : 48661 (1 row) Time: 14,412 ms
desk i686 : 48661 (1 row) Time: 4,845 ms
2- select * from pg_settings;
server x64 : Time: 3,898 ms
desk i686 : Time: 1,517 ms
3- I've run "time pgbench -c 50" :
server x64 :
starting vacuum...end.
transaction type: TPC-B (sort of)
scaling factor: 1
query mode: simple
number of clients: 50
number of transactions per client: 10
number of transactions actually processed: 500/500
tps = 523.034437 (including connections establishing)
tps = 663.511008 (excluding connections establishing)
real 0m0.984s
user 0m0.088s
sys 0m0.096s
desk i686 :
starting vacuum...end.
transaction type: TPC-B (sort of)
scaling factor: 1
query mode: simple
number of clients: 50
number of transactions per client: 10
number of transactions actually processed: 500/500
tps = 781.986778 (including connections establishing)
tps = 862.809792 (excluding connections establishing)
real 0m0.656s
user 0m0.028s
sys 0m0.052s
Do you think it's a 32bit/64bit difference ?
--
Sent via pgsql-performance mailing list (pgsql-performance@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-performance