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

From: Ingo Molnar
Date: Tue Mar 11 2008 - 03:59:33 EST



* Nick Piggin <nickpiggin@xxxxxxxxxxxx> 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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/