diff options
-rw-r--r-- | Documentation/RelNotes/v2.0.0.wip | 5 | ||||
-rw-r--r-- | Documentation/public-inbox-tuning.pod | 9 | ||||
-rw-r--r-- | examples/public-inbox-httpd@.service | 1 | ||||
-rw-r--r-- | examples/public-inbox-imapd@.service | 2 | ||||
-rw-r--r-- | examples/public-inbox-netd@.service | 11 | ||||
-rw-r--r-- | examples/public-inbox-nntpd@.service | 2 |
6 files changed, 18 insertions, 12 deletions
diff --git a/Documentation/RelNotes/v2.0.0.wip b/Documentation/RelNotes/v2.0.0.wip index 4d872fd7..794d7956 100644 --- a/Documentation/RelNotes/v2.0.0.wip +++ b/Documentation/RelNotes/v2.0.0.wip @@ -54,8 +54,9 @@ treewide * SHA-256 coderepos are fully supported (but not inboxes, yet) - * jemalloc (tested as an LD_PRELOAD) is recommended to reduce fragmentation - in long-running daemon processes serving unpredictable traffic + * 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. PublicInbox::WWW diff --git a/Documentation/public-inbox-tuning.pod b/Documentation/public-inbox-tuning.pod index 7d0690b4..892ee0f2 100644 --- a/Documentation/public-inbox-tuning.pod +++ b/Documentation/public-inbox-tuning.pod @@ -165,11 +165,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. -jemalloc (tested as an LD_PRELOAD on GNU/Linux) reduces -overall fragmentation compared to glibc malloc in long-lived processes. -glibc malloc users may try setting C<MALLOC_MMAP_THRESHOLD_> to a lower -value (e.g. 131072) but that may require increasing the -C<sys.vm.max_map_count> sysctl. +glibc malloc users should use C<MALLOC_MMAP_THRESHOLD_=131072> 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. =head2 Other OS tuning knobs diff --git a/examples/public-inbox-httpd@.service b/examples/public-inbox-httpd@.service index 11859198..ca68fc7e 100644 --- a/examples/public-inbox-httpd@.service +++ b/examples/public-inbox-httpd@.service @@ -19,6 +19,7 @@ After = public-inbox-httpd.socket Environment = PI_CONFIG=/home/pi/.public-inbox/config \ PATH=/usr/local/bin:/usr/bin:/bin \ TZ=UTC \ +MALLOC_MMAP_THRESHOLD_=131072 \ PERL_INLINE_DIRECTORY=/tmp/.pub-inline LimitNOFILE = 30000 diff --git a/examples/public-inbox-imapd@.service b/examples/public-inbox-imapd@.service index 80104605..1aede65d 100644 --- a/examples/public-inbox-imapd@.service +++ b/examples/public-inbox-imapd@.service @@ -16,6 +16,8 @@ After = public-inbox-imapd.socket [Service] Environment = PI_CONFIG=/home/pi/.public-inbox/config \ PATH=/usr/local/bin:/usr/bin:/bin \ +TZ=UTC \ +MALLOC_MMAP_THRESHOLD_=131072 \ PERL_INLINE_DIRECTORY=/tmp/.pub-inline LimitNOFILE = 30000 diff --git a/examples/public-inbox-netd@.service b/examples/public-inbox-netd@.service index 7437f086..51f58fbb 100644 --- a/examples/public-inbox-netd@.service +++ b/examples/public-inbox-netd@.service @@ -12,14 +12,15 @@ Wants = public-inbox-netd.socket After = public-inbox-netd.socket [Service] -# An LD_PRELOAD for libjemalloc can be added here. It is -# more resistant to fragmentation in long-lived daemons than glibc. -# If you're unable to use jemalloc, setting MALLOC_MMAP_THRESHOLD_ -# to a lower value (e.g. 131072) but that may also require increasing -# the sys.vm.max_map_count sysctl. + +# 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. Environment = PI_CONFIG=/home/pi/.public-inbox/config \ PATH=/usr/local/bin:/usr/bin:/bin \ TZ=UTC \ +MALLOC_MMAP_THRESHOLD_=131072 \ PERL_INLINE_DIRECTORY=/tmp/.netd-inline LimitNOFILE = 30000 diff --git a/examples/public-inbox-nntpd@.service b/examples/public-inbox-nntpd@.service index 24f9ca73..556cb76f 100644 --- a/examples/public-inbox-nntpd@.service +++ b/examples/public-inbox-nntpd@.service @@ -16,6 +16,8 @@ After = public-inbox-nntpd.socket [Service] Environment = PI_CONFIG=/home/pi/.public-inbox/config \ PATH=/usr/local/bin:/usr/bin:/bin \ +TZ=UTC \ +MALLOC_MMAP_THRESHOLD_=131072 \ PERL_INLINE_DIRECTORY=/tmp/.pub-inline LimitNOFILE = 30000 |