On Mon, Jan 8, 2018 at 2:38 PM, Thomas Munro
<thomas.mu...@enterprisedb.com> wrote:
> On Fri, Jan 5, 2018 at 6:28 AM, Robert Haas <robertmh...@gmail.com> wrote:
>> On Tue, Jan 2, 2018 at 5:23 PM, Andres Freund <and...@anarazel.de> wrote:
>>> Note that real-world scenarios probably will see somewhat smaller
>>> impact, as this was measured over a loopback unix sockets which'll have
>>> smaller overhead itself than proper TCP sockets + actual network.
>>
>> What about scenarios with longer-running queries?
>>
>> Is it feasible to think about reducing the number of system calls we
>> issue in cases that weren't previously worth optimizing?
>
> Maybe the places where syscall rate is controlled by arbitrary buffer
> sizes?  Examples: 8kB BufFile buffers and 128kB replication stream
> buffers.  Just an idea, not sure if it's worth looking into; maybe we
> already spend enough time filling those buffers that a 50% syscall
> markup won't hurt.

Also pgarch.c, syncrep.c, walsender.c and walreceiver.c use
PostmasterIsAlive() every time through their loops[1] generating extra
syscalls, one instance of which has caused complaints before[1] on a
system where the syscall was expensive (arguably because that kernel
needs some work but still, it's an example of the thing you asked
about).

[1] https://www.postgresql.org/message-id/flat/20160915135755.GC19008%40genua.de

-- 
Thomas Munro
http://www.enterprisedb.com

Reply via email to