Re: 20% performance drop on PostgreSQL 9.2 from kernel 3.5.3 to 3.6-rc5 on AMD chipsets - bisected

Mike Galbraith
2012-09-27T06:54:19Z

On Thu, 2012-09-27 at 08:41 +0200, Ingo Molnar wrote:
> * Mike Galbraith <efault@gmx.de> wrote:
>
> > > Just to confirm, if you turn off all preemption via a hack
> > > (basically if you turn SCHED_OTHER into SCHED_BATCH), does
> > > psql perform and scale much better, with the quality of
> > > sibling selection and spreading of processes only being a
> > > secondary effect?
> >
> > That has always been the case here. Preemption dominates.
>
> Yes, so we get the best psql performance if we allow the central
> proxy process to dominate a single CPU (IIRC it can easily go up
> to 100% CPU utilization on that CPU - it is what determines max
> psql throughput), and not let any worker run there much, right?

Running the thing RT didn't cut it iirc (will try that again). For RT,
we won't look for an empty spot on wakeup, we'll just squash an ant.

> > Others should play with it too, and let their boxen speak.
>
> Do you have an easy-to-apply hack patch by chance that has the
> effect of turning off all such preemption, which people could
> try?

They don't need any hacks, all they have to do is start postgreqsl
SCHED_BATCH, then run pgbench the same way.

I use schedctl, but in chrt speak, chrt -b 0 /etc/init.d/postgresql
start, and then the same for pgbench itself.

-Mike