Re: about half processes are blocked by btree, btree is bottleneck?

From: Heikki Linnakangas <hlinnakangas(at)vmware(dot)com>
To: Xiaoyulei <xiaoyulei(at)huawei(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: about half processes are blocked by btree, btree is bottleneck?
Date: 2014-09-11 07:40:02
Message-ID: 541151D2.5040101@vmware.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 09/11/2014 06:08 AM, Xiaoyulei wrote:
> I use benchmarksql with more than 200 clients on pg 9.3.3. when the test is going on, I collect all the process stack. I found about 100 processes are blocked by btree insert. Another 100 are blocked by xloginsert.
>
> Does btree has bad performance in concurrency scenarios?

Well, there's always a bottleneck. I'd suggest trying 9.4, there were
changes to make WAL insertion more scalable, as well as small tweaks to
the spinlock implementation.

I'm not too familiar with BenchmarkSQL, but if 200 clients means 200
concurrent active connections to the database, that's a lot. You'll
likely see better performance if you dial it down closer to the number
of CPU cores in the server.

Also make sure you use a large-enough scale factor. Otherwise all
transactions try to access a small set of rows, which naturally becomes
a bottleneck.

- Heikki

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Amit Kapila 2014-09-11 08:01:15 Re: Support for N synchronous standby servers
Previous Message Erik Rijkers 2014-09-11 07:35:24 Re: RLS Design