Re: Speed up Clog Access by increasing CLOG buffers
Tomas Vondra <tomas.vondra@2ndquadrant.com>
On 09/14/2016 05:29 PM, Robert Haas wrote: > On Wed, Sep 14, 2016 at 12:55 AM, Dilip Kumar <dilipbalaut@gmail.com> wrote: >> 2. Results >> ./pgbench -c $threads -j $threads -T 10 -M prepared postgres -f script.sql >> scale factor: 300 >> Clients head(tps) grouplock(tps) granular(tps) >> ------- --------- ---------- ------- >> 128 29367 39326 37421 >> 180 29777 37810 36469 >> 256 28523 37418 35882 >> >> >> grouplock --> 1) Group mode to reduce CLOGControlLock contention >> granular --> 2) Use granular locking model >> >> I will test with 3rd approach also, whenever I get time. >> >> 3. Summary: >> 1. I can see on head we are gaining almost ~30 % performance at higher >> client count (128 and beyond). >> 2. group lock is ~5% better compared to granular lock. > > Sure, but you're testing at *really* high client counts here. Almost > nobody is going to benefit from a 5% improvement at 256 clients. You > need to test 64 clients and 32 clients and 16 clients and 8 clients > and see what happens there. Those cases are a lot more likely than > these stratospheric client counts. > Right. My impression from the discussion so far is that the patches only improve performance with very many concurrent clients - but as Robert points out, almost no one is running with 256 active clients, unless they have 128 cores or so. At least not if they value latency more than throughput. So while it's nice to improve throughput in those cases, it's a bit like a tree falling in the forest without anyone around. regards -- Tomas Vondra http://www.2ndQuadrant.com PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Commits
-
Use group updates when setting transaction status in clog.
- baaf272ac908 11.0 landed
- ccce90b39867 10.0 landed
-
Improve 64bit atomics support.
- e8fdbd58fe56 10.0 landed
-
Add ProcArrayGroupUpdate wait event.
- d4116a771925 10.0 landed
-
Make the different Unix-y semaphore implementations ABI-compatible.
- be7b2848c6d8 10.0 cited
-
Fix broken ALTER INDEX documentation
- 2143f5e12790 9.6.0 cited
-
Code and docs review for commit 3187d6de0e5a9e805b27c48437897e8c39071d45.
- d12e5bb79bb5 9.6.0 cited
-
Partition the freelist for shared dynahash tables.
- 44ca4022f3f9 9.6.0 cited
-
Correct StartupSUBTRANS for page wraparound
- 481725c0ba73 9.6.0 cited
-
Make idle backends exit if the postmaster dies.
- ac1d7945f866 9.6.0 cited
-
contrib/sslinfo: add ssl_extension_info SRF
- 49124613f134 9.6.0 cited
-
Reduce ProcArrayLock contention by removing backends in batches.
- 0e141c0fbb21 9.6.0 cited
-
Fix `make installcheck` for serializable transactions.
- 253de7e1eb9a 9.6.0 cited
-
Lockless StrategyGetBuffer clock sweep hot path.
- d72731a70450 9.5.0 cited
-
Reduce sinval synchronization overhead.
- b4fbe392f8ff 9.2.0 cited