Michael Paquier <mich...@paquier.xyz> writes: > On Sun, Mar 04, 2018 at 03:31:31PM -0500, Tom Lane wrote: >> ... But what I would argue is that >> of those three choices, the least defensible one is max_wal_senders = 10. >> Where did that come from? What fraction of real-world installations will >> need that? We don't choose defaults that overprovision small >> installations by 5X or 10X anywhere else, so why here?
> Those numbers are coming from f6d6d29, which points to this thread at > its root: > https://www.postgresql.org/message-id/CABUevEwfV7zDutescm2PHGvsJdYA0RWHFMTRGhwrJPGgSbzZDQ%40mail.gmail.com > The number of max_wal_senders came out as a consensus because those are > cheap to enable, now the number came out by itself. I am not seeing on > the thread any specific reason behind. I don't doubt that the amount of shared memory involved is negligible, but I'm less sure that there's no impact at all from overprovisioning max_wal_senders. What I see in the code is a lot of places iterating over each walsender slot and taking a spinlock on each slot, whether or not the slot is used (or ever has been used). Are we sure that none of those places are performance hot spots? AFAICS from a quick spin through the above-mentioned thread, there was little discussion of the exact value to set max_wal_senders to, and no performance testing of the point. regards, tom lane