From c372f2c24d64435c303024f103aac99e37ffb0b4 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Tue, 14 May 2024 06:38:06 +0000 Subject: doc: limit jemalloc recommendation to 64-bit systems My 32-bit server seems less happy with jemalloc; likely since munmap is creating holes and it's not using sbrk by default. jemalloc seems to need large VM space (not actual memory) to work well, and that isn't a possibility for constrained 32-bit systems. --- Documentation/RelNotes/v2.0.0.wip | 2 +- Documentation/public-inbox-tuning.pod | 7 ++++--- examples/public-inbox-netd@.service | 8 +++++--- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/Documentation/RelNotes/v2.0.0.wip b/Documentation/RelNotes/v2.0.0.wip index 794d7956..f04d8144 100644 --- a/Documentation/RelNotes/v2.0.0.wip +++ b/Documentation/RelNotes/v2.0.0.wip @@ -56,7 +56,7 @@ treewide * for daemons serving public traffic, MALLOC_MMAP_THRESHOLD_=131072 is recommended to reduce fragmentation in glibc malloc, while jemalloc - (tested as an LD_PRELOAD) is another option. + (tested as an LD_PRELOAD) is another option (at least for 64-bit). PublicInbox::WWW diff --git a/Documentation/public-inbox-tuning.pod b/Documentation/public-inbox-tuning.pod index 892ee0f2..b56c2b10 100644 --- a/Documentation/public-inbox-tuning.pod +++ b/Documentation/public-inbox-tuning.pod @@ -166,9 +166,10 @@ capacity planning. Bursts of small object allocations late in process life contribute to fragmentation of the heap due to arenas (slabs) used internally by Perl. glibc malloc users should use C to reduce -fragmentation from the sliding mmap window. jemalloc (tested as an -LD_PRELOAD on GNU/Linux) also reduces fragmentation compared to an -unconfigured glibc malloc in long-lived processes. +fragmentation from the sliding mmap window. On 64-bit systems, jemalloc +(tested as an LD_PRELOAD on GNU/Linux) reduces fragmentation at the +expense of VM space. 32-bit systems may be better off sticking with +glibc and MALLOC_MMAP_THRESHOLD_. =head2 Other OS tuning knobs diff --git a/examples/public-inbox-netd@.service b/examples/public-inbox-netd@.service index 51f58fbb..2e8797ed 100644 --- a/examples/public-inbox-netd@.service +++ b/examples/public-inbox-netd@.service @@ -14,9 +14,11 @@ After = public-inbox-netd.socket [Service] # Setting MALLOC_MMAP_THRESHOLD_=131072 reduces fragmentation by -# disabling the sliding mmap window in glibc malloc. An LD_PRELOAD for -# libjemalloc may be added here, instead. jemalloc is more resistant to -# fragmentation in long-lived daemons than unconfigured glibc malloc. +# disabling the sliding mmap window in glibc malloc. For 64-bit systems, +# LD_PRELOAD for libjemalloc may be added here, instead. jemalloc is more +# resistant to fragmentation in long-lived daemons than unconfigured glibc +# malloc on systems with large VM space. 32-bit systems may be better +# off sticking with glibc and MALLOC_MMAP_THRESHOLD_. Environment = PI_CONFIG=/home/pi/.public-inbox/config \ PATH=/usr/local/bin:/usr/bin:/bin \ TZ=UTC \ -- cgit v1.2.3-24-ge0c7