Re: [patch] Re: PostgreSQL pgbench performance regression in 2.6.23+

Mike Galbraith
2008-06-06T06:13:17Z

On Fri, 2008-06-06 at 01:03 -0400, Greg Smith wrote:

> I think I might not be testing exactly the same thing you did, though,
> because the pattern doesn't match. I think that my Q6600 system runs a
> little bit faster than yours, which is the case for small numbers of
> clients here. But once we get above 8 clients your setup is way faster,
> with the difference at 15 clients being the largest. Were you perhaps
> using batch mode when you generated these results?

No, those were with stock settings.

> Regardless, clearly your patch reduces the regression with the default
> parameters to a mild one instead of the gigantic one we started with.

Unfortunately, after the recent reverts, we're right back to huge :-/

I'm trying to come up with a dirt simple solution that doesn't harm
other load types. I've found no clear reason why we regressed so badly,
it seems to be a luck of the draw run order thing. As soon as the load
starts jamming up a bit, it avalanches into a serialized mess again. I
know the why, just need to find that dirt simple and pure win fix.

> Considering how generally incompatible this benchmark is with this
> scheduler, and that there are clear workarounds (feature disabling) I can
> document in PostgreSQL land to "fix" the problem defined for me now, I'd
> be happy if all that came from this investigation was this change. I'd
> hope that being strengthened against this workload improves the
> scheduler's robustness for other tasks of this type, which I'm sure there
> are more of than just pgbench.

I consider pgbench to be a pretty excellent testcase. Getting this
fixed properly will certainly benefit similar loads, Xorg being one
that's just not as extreme as pgbench.

> You get my vote for moving toward committing it+backport even if
> the improvement is only what I saw in my tests. If I can figure out how
> to get closer to the results you got, all the better.

It's committed, but I don't think a back-port is justified. It does
what it's supposed to do, but there's a part 2. I suspect that your
results differ from mine due to that luck of the run order draw thing.

-Mike