Re: Poor PostgreSQL scaling on Linux 2.6.25-rc5 (vs 2.6.22)

Ingo Molnar
2008-03-11T07:59:08Z

* Nick Piggin <nickpiggin@yahoo.com.au> wrote:

> PostgreSQL is different. It has zero idle time when running this
> workload. It actually scaled "super linearly" on my system here, from
> single threaded performance to 8 cores (giving an 8.2x performance
> increase)!
>
> So PostgreSQL performance profile is actually much more interesting.
> To my dismay, I found that Linux 2.6.25-rc5 performs really badly
> after saturating the runqueues and subsequently increasing threads.
> 2.6.22 drops a little bit, but basically settles near the peak
> performance. With 2.6.25-rc5, throughput seems to be falling off
> linearly with the number of threads.

thanks Nick, i'll check this - and i agree that this very much looks
like a scheduler regression. Just a quick suggestion, does a simple
runtime tune like this fix the workload:

for N in /proc/sys/kernel/sched_domain/*/*/flags; do
echo $[`cat $N`|16] > N
done

this sets SD_WAKE_IDLE for all the nodes in the scheduler domains tree.
(doing this results in over-agressive idle balancing - but if this fixes
your testcase it shows that we were balancing under-agressively for this
workload.) Thanks,

Ingo