Performance on new 64bit server compared to my 32bit desktop

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Postgresql General]     [Postgresql PHP]     [PHP Users]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Yosemite]

  Powered by Linux