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
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers