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

Reply via email to