[ClusterLabs] PCMK_ipc_buffer recommendation

Ken Gaillot kgaillot at redhat.com
Fri Jan 18 11:24:37 EST 2019

On Fri, 2019-01-18 at 08:22 +0100, Ferenc Wágner wrote:
> Hi,
> Looking at lib/common/ipc.c, Pacemaker recommends setting
> PCMK_ipc_buffer to 4 times the *uncompressed* size of the biggest
> message seen:
> error: Could not compress the message (2309508 bytes) into less than
> the configured ipc limit (131072 bytes). Set PCMK_ipc_buffer to a
> higher value (9238032 bytes suggested)
> Before setting it, I'd like to ask for confirmation: is a 10 MB
> buffer
> really reasonable and recommended in the above case?  I wonder what
> effect it will have on total memory consumption.  Growing 10 MB would
> be
> OK, growing 10 MB * some biggish number wouldn't.

Each daemon will need 10MB per active client. The number of clients is
unlikely to grow large in normal operation (maybe a dozen or so?),
though one could imagine a runaway loop in some script spawning a bunch
of commands that need client connections, or 100 resource monitors all
setting node attributes at the same time.

The OS never reclaims memory from a process, so once a daemon balloons
to a certain size, it will never be smaller (even if it frees memory,
that will just go back into its own available pool).

There's no magic to the 4 times. The idea is simply that if we get one
big message, there will likely be even bigger ones later, so try to
avoid the user needing to repeatedly increase it. Setting it to 1.5x or
2x would be more conservative.

(Each client will also need 10MB per daemon connection it uses, but it
will typically have only 1 or 2, and clients don't usually stay around
very long.)
Ken Gaillot <kgaillot at redhat.com>

More information about the Users mailing list