Performance! [SOLVED]
Claus Guttesen
kometen at gmail.com
Fri Jan 11 09:35:12 PST 2008
> >> I have read all related threads about performance problems with multi
> >> core systems but still have no idea what to do to make thinks better.
> >> Below are results of testing postgresql on HP DL380G5 using sysbench.
> >> The results are comparable to:
> >> http://blog.insidesystems.net/articles/2007/04/11/postgresql-scaling-on-6-2-and-7-0
> >>
> >> but the same tests running on the same hardware using Linux (kernel
> >> 2.6.18-53.1.4.el5 SMP x86_64) are very different.
> >> PostgreSQL is tuned equal.
>
> Just to summarize some discussion we had off-list, this problem is now
> resolved. It turned out to have two causes:
>
> 1) sysbench on linux was defaulting to using a unix domain socket to
> communicate with pgsql, but FreeBSD was using TCP to 127.0.0.1. TCP has
> much more overhead so performance was lower. Using --pgsql-host="" in
> sysbench is the fix for this.
>
> 2) pgsql was not compiled with thread support enabled, which caused lots
> of bad interactions with the threaded sysbench client. This probably
> would have caused data corruption too (silent in this case because
> nothing was checking the query responses). The fix was to recompile the
> pgsql client and server with the THREADSAFE option enabled.
>
> Krassimir reports that with these two fixes, the standard 7.0 kernel has
> performance:
>
> #threads transactions/sec
> 1 755
> 8 7129
> 40 6580
> 100 6768
>
> compared to Linux:
>
> Linux (2.6.18)
> #threads #transactions/sec
> 1 693
> 5 3539
> 10 5789
> 20 5791
> 40 5661
> 60 5517
> 80 5401
> 100 5319
>
> Linux (2.6.23)
> #threads #transactions/sec
> 1 740
> 5 2675
> 10 6486
> 20 6893
> 40 6623
> 60 6623
> 80 6522
> 100 6417
>
> I think this is a satisfactory resolution :)
Thank you so much! (both of you and those who helped along the way) :-)
On monday I will start testing a setup where we are moving from four
10K rpm sas disk in raid 1+0 to eight 15K rpm sas disks in raid 1+0 as
well. The former is a ciss p400 controller with 512 MB bbc and the
latter is a p800 with 512 MB bbc and an external msa-box.
I will test with 7.0 and postgresql 8.2 from ports. Should I test with
stable or release? Are there any patches I can apply? Our current
db-server is a DL380 G5 woodcrest at 3 Ghz and my test-server will be
a 8-core DL360 G5 at 2.4 Ghz (I think). I will log the queries from
our live-server and repeat them on the test-server, use pgbench on
FreeBSD, Solaris and Linux.
I was getting a bit worried when the number varied so much between
Linux and FreeBSD.
--
regards
Claus
When lenity and cruelty play for a kingdom,
the gentlest gamester is the soonest winner.
Shakespeare
More information about the freebsd-stable
mailing list