Re: [HACKERS] kqueue
Thomas Munro <thomas.munro@enterprisedb.com>
From: Thomas Munro <thomas.munro@enterprisedb.com>
To: Torsten Zuehlsdorff <mailinglists@toco-domains.de>
Cc: Keith Fiske <keith@omniti.com>, Matteo Beccati <php@beccati.com>,
Tom Lane <tgl@sss.pgh.pa.us>, Andres Freund <andres@anarazel.de>, Heikki Linnakangas <hlinnaka@iki.fi>,
Marko Tiikkaja <marko@joh.to>, Alvaro Herrera <alvherre@2ndquadrant.com>,
Robert Haas <robertmhaas@gmail.com>, Pg Hackers <pgsql-hackers@postgresql.org>, Noah Misch <noah@leadboat.com>
Date: 2017-12-05T11:53:22Z
Lists: pgsql-hackers
Attachments
- kqueue-v8.patch (application/octet-stream) patch v8
On Thu, Jun 22, 2017 at 7:19 PM, Thomas Munro
<thomas.munro@enterprisedb.com> wrote:
> I don't plan to resubmit this patch myself, but I was doing some
> spring cleaning and rebasing today and I figured it might be worth
> quietly leaving a working patch here just in case anyone from the
> various BSD communities is interested in taking the idea further.
Since there was a mention of kqueue on -hackers today, here's another
rebase. I got curious just now and ran a very quick test on an AWS 64
vCPU m4.16xlarge instance running image "FreeBSD
11.1-STABLE-amd64-2017-08-08 - ami-00608178". I set shared_buffers =
10GB and ran pgbench approximately the same way Heikki and Keith did
upthread:
pgbench -i -s 200 postgres
pgbench -M prepared -j 6 -c 6 -S postgres -T60 -P1
pgbench -M prepared -j 12 -c 12 -S postgres -T60 -P1
pgbench -M prepared -j 24 -c 24 -S postgres -T60 -P1
pgbench -M prepared -j 36 -c 36 -S postgres -T60 -P1
pgbench -M prepared -j 48 -c 48 -S postgres -T60 -P1
The TPS numbers I got (including connections establishing) were:
clients master patched
6 146,215 147,535 (+0.9%)
12 273,056 280,505 (+2.7%)
24 360,751 369,965 (+2.5%)
36 413,147 420,769 (+1.8%)
48 416,189 444,537 (+6.8%)
The patch appears to be doing something positive on this particular
system and that effect was stable over a few runs.
--
Thomas Munro
http://www.enterprisedb.com
Commits
-
Add kqueue(2) support to the WaitEventSet API.
- 815c2f0972c8 13.0 landed
-
Add WL_EXIT_ON_PM_DEATH pseudo-event.
- cfdf4dc4fc96 12.0 cited
-
Be conservative about alignment requirements of struct epoll_event.
- a3b30763cc86 9.6.0 cited
-
Make idle backends exit if the postmaster dies.
- ac1d7945f866 9.6.0 cited