On Tue, Apr 10, 2007 at 12:04:32AM -0400, Kevin Way wrote: > Kris Kennaway wrote: > >If so, then your task is the following: > > > >Make SYSV semaphores less dumb about process wakeups. Currently > >whenever the semaphore state changes, all processes sleeping on the > >semaphore are woken, even if we only have released enough resources > >for one waiting process to claim. i.e. there is a thundering herd > >wakeup situation which destroys performance at high loads. Fixing > >this will involve replacing the wakeup() calls with appropriate > >amounts of wakeup_one(). > Could this cause problem cause a situation where an 8-Core system was > 50-75% slower than an otherwise equivalent 2-Core system? > > I have a graph of my sysbench/pgsql results here: > > http://blog.insidesystems.net/files/sysctl-pgsq-amd64-wtf.png > > As the graph shows, the 8-core system is about half the speed of the > 2-core system at 2 simultaneous threads, and it decays down to > approximately 1/4 the speed of the 2-core system as the # of threads hits 5. > > All other (non-pgsql, non-sysv) tests came back approximately as > expected, but I'm left wondering if I did something wrong, or if 8 cpus > are slower than 2, when it comes to Postgres on currently available FreeBSD.
I wouldn't expect 6.2 to have good scaling on 8 cpus for this kind of benchmark. Fixing that was what we have been working on for 7.0 (and basically succeeded). The most important fixes are already in 7.0 CVS, but a possible merge to 6.x will only happen after a suitably conservative delay. Kris
pgp9Qebj6FCb5.pgp
Description: PGP signature