cvs commit: src/sys/kern sched_ule.c
jroberson at chesapeake.net
Mon Mar 3 23:47:26 PST 2008
On Tue, 4 Mar 2008, Garrett Wollman wrote:
> <<On Sat, 1 Mar 2008 22:29:50 -1000 (HST), Jeff Roberson <jroberson at chesapeake.net> said:
>> Kris has done some excellent benchmarking as usual. Here you can see the
>> improvement in postgres depending on various scheduler debug settings:
> Can you comment on the area under the knee in the 8-cpu topologies? I
> seems surprising that 16 cores performs worse than 8 cores in this
Depending on the flags you can see different scaling properties of
different cpu selection algorithms. That's what the userret=x, tryself=y
parameters are changing. Certain parameters can cause less concurrency
which works better when workloads are heavily contended.
See the light blue line, tryself=0, userret=0. This scales up more
poorly because there is less concurrency when there is no lock contention
but behaves better when there is contention because we're less likely to
distribute load that would preempt a lock holder.
The default settings scale the best when there is little or no contention.
That's userret=1, tryself=1. There are other parameters that are
important but these were the ones we were most recently experimenting
with. This drops off harshly when there is significant contention because
most of the threads end up blocked against the same lock and may be
preempted then rely on priority propagation to kick in.
The default settings should encourage further refinements to subsystem
locking to yield the best performance.
> freebsd-current at freebsd.org mailing list
> To unsubscribe, send any mail to "freebsd-current-unsubscribe at freebsd.org"
More information about the freebsd-current