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

next in thread | previous in thread | raw e-mail | index | archive | help
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



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