SCHED_ULE should not be the default
George Mitchell
george+freebsd at m5p.com
Sat Dec 17 17:33:28 UTC 2011
On 12/14/11 21:05, Oliver Pinter wrote:
> [...]
> Hi!
>
> Can you try with this settings:
>
> op at opn ~> sysctl kern.sched.
> kern.sched.cpusetsize: 8
> kern.sched.preemption: 0
> kern.sched.name: ULE
> kern.sched.slice: 13
> kern.sched.interact: 30
> kern.sched.preempt_thresh: 224
> kern.sched.static_boost: 152
> kern.sched.idlespins: 10000
> kern.sched.idlespinthresh: 16
> kern.sched.affinity: 1
> kern.sched.balance: 1
> kern.sched.balance_interval: 133
> kern.sched.steal_htt: 1
> kern.sched.steal_idle: 1
> kern.sched.steal_thresh: 1
> kern.sched.topology_spec:<groups>
> <group level="1" cache-level="0">
> <cpu count="2" mask="3">0, 1</cpu>
> <children>
> <group level="2" cache-level="2">
> <cpu count="2" mask="3">0, 1</cpu>
> </group>
> </children>
> </group>
> </groups>
> [...]
Sorry I didn't try this earlier, but I had time this morning.
Apparently you can't change kern.sched.preemption without
recompiling, so I did that. It didn't help, and subjectively it
made interactive performance worse. I changed preempt_thresh and
observed no difference. There were only a couple of small
differences between your other settings and the 9.0-PRERELEASE
defaults.
Summing up for the record, in my original test:
1. It doesn't matter whether X is running or not.
2. The problem is not limited to two or fewer CPUs. (It also happens
for me on a six-CPU system.)
3. It doesn't require nCPU + 1 compute-bound processes, just nCPU.
With nCPU compute-bound processes running, with SCHED_ULE, any other
process that is interactive (which to me means frequently waiting for
I/O) gets ABYSMAL performance -- over an order of magnitude worse than
it gets with SCHED_4BSD under the same conditions. -- George
More information about the freebsd-stable
mailing list