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 "[EMAIL PROTECTED]"
.

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
_______________________________________________
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to