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