Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 03 Jan 2008 13:38:24 +0200
From:      Krassimir Slavchev <krassi@bulinfo.net>
To:        Kris Kennaway <kris@FreeBSD.org>
Cc:        FreeBSD <freebsd-stable@freebsd.org>
Subject:   Re: Performance!
Message-ID:  <477CC930.3000802@bulinfo.net>
In-Reply-To: <477C2A51.1050401@FreeBSD.org>
References:  <476A5EE1.9000003@bulinfo.net> <476FF662.6050604@FreeBSD.org> <477BB7C0.3060603@bulinfo.net> <477C1FA3.2070904@FreeBSD.org> <477C2A51.1050401@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Kris Kennaway wrote:
> Kris Kennaway wrote:
>> Krassimir Slavchev wrote:
>>> -----BEGIN PGP SIGNED MESSAGE-----
>>> Hash: SHA1
>>>
>>> Kris Kennaway wrote:
>>>> Krassimir Slavchev wrote:
>>>> Hello,
>>>>
>>>> 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.
>>>>
>>>> dmesg:
>>>> ...
>>>> CPU: Intel(R) Xeon(R) CPU           X5450  @ 3.00GHz (3000.02-MHz
>>>> K8-class CPU)
>>>>   Origin = "GenuineIntel"  Id = 0x10676  Stepping = 6
>>>>
>>>> Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
>>>>
>>>>
>>>>
>>>> Features2=0xce3bd<SSE3,RSVD2,MON,DS_CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,DCA,<b19>>
>>>>
>>>>
>>>>   AMD Features=0x20000800<SYSCALL,LM>
>>>>   AMD Features2=0x1<LAHF>
>>>>   Cores per package: 4
>>>> usable memory = 8575655936 (8178 MB)
>>>> avail memory  = 8288337920 (7904 MB)
>>>> ACPI APIC Table: <HP     ProLiant>
>>>> FreeBSD/SMP: Multiprocessor System Detected: 8 CPUs
>>>> ...
>>>>
>>>> test:
>>>> sysbench --num-threads=${i} --test=oltp --pgsql-user=bench
>>>> --pgsql-db=bench --db-driver=pgsql --max-time=60 --max-requests=0
>>>> --oltp-read-only=on run
>>>>
>>>> tuning:
>>>> kern.ipc.shmmax=2147483647
>>>> kern.ipc.shmall=524288
>>>> kern.ipc.semmsl=512
>>>> kern.ipc.semmap=256
>>>> kern.ipc.somaxconn=2048
>>>> kern.maxfiles=65536
>>>> vfs.read_max=32
>>>>
>>>> kern.ipc.semmni=256
>>>> kern.ipc.semmns=2048
>>>>
>>>> results:
>>>> FreeBSD 7.0-BETA4 amd64 (cvsup on 20.12) GENERIC with SCHED_ULE
>>>> #threads        #transactions/sec       user/system
>>>> 1               500                     7.4%,5.3%
>>>> 5               1990                    30.9%,23.4%
>>>> 10              2510                    39.9%,35.0%
>>>> 20              2549                    44.5%,43.5%
>>>> 40              1921                    29.8%,59.4%
>>>> 60              1580                    22.7%,70.6%
>>>> 80              1341                    18.9%,75.9%
>>>> 100             1227                    16.5%,79.3%
>>>>
>>>> Linux
>>>> #threads        #transactions/sec
>>>> 1               693
>>>> 5               3539
>>>> 10              5789
>>>> 20              5791
>>>> 40              5661
>>>> 60              5517
>>>> 80              5401
>>>> 100             5319
>>>>
>>>>
>>>> What can be done to improve these results?
>>>>
>>>> Best Regards
>>>>
>>> _______________________________________________
>>> freebsd-stable@freebsd.org mailing list
>>> http://lists.freebsd.org/mailman/listinfo/freebsd-stable
>>> To unsubscribe, send any mail to
>>> "freebsd-stable-unsubscribe@freebsd.org"
>>> .
>>>
>>>> postgresql has some poor default settings on FreeBSD.  You need to add:
>>>
>>>> stats_command_string = off
>>>> update_process_title = off
>>>
>>>> Kris
>>>
>>> I use a copy of postgresql.conf file from linux.
>>> Only 'stats_command_string = on' was commented.
>>> Here are results with these settings and lock_manager patch:
>>>
>>> #threads        #transactions/sec
>>> 1               582
>>> 5               2154
>>> 10              2253
>>> 20              2705
>>> 40              2215
>>> 60              1713
>>> 80              1574
>>> 100             1256
>>
>> Please enable LOCK_PROFILING in your kernel and then do
>>
>> sysctl debug.lock.prof.enable=1
>> <run the test with 8 threads>
>> sysctl debug.lock.prof.enable=0
>>
>> and send me the output of
>>
>> sysctl debug.lock.prof.stats
>>
>> Kris
>>
> 

I have sent the results to you.
If someone else interested in these results I will put them somewhere.

> Are you using postgresql 8.1 or older?  It didn't have the
> update_process_title option to disable the setproctitle() calls that
> have a large performance penalty on FreeBSD.  Try with 8.2 or hack the
> source to disable it.

It is 8.2 from ports.
pkg_info:
postgresql-server-8.2.5_2 The most advanced open-source database
available anywhere

> 
> Kris
> 

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (FreeBSD)

iD8DBQFHfMkvxJBWvpalMpkRAhe+AJ9Bsl0ciZ6kPHtJT9RVjDo4E4fNxgCcC7qH
5veO734c+yDgEY945dwINAg=
=cdYT
-----END PGP SIGNATURE-----



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?477CC930.3000802>