docker: set MALLOC_ARENA_MAX=2.

Setting MALLOC_ARENA_MAX=2 is claimed to reduce memory bloat caused by
fragmentation. Jemalloc 3.x is also claimed to reduce memory bloat, but
modern distros only ship Jemalloc 5.x, and supposedly only 3.x works.

https://devcenter.heroku.com/articles/tuning-glibc-memory-behavior
https://bugs.ruby-lang.org/issues/14718
https://www.speedshop.co/2017/12/04/malloc-doubles-ruby-memory.html
https://www.joyfulbikeshedding.com/blog/2019-03-14-what-causes-ruby-memory-bloat.html
This commit is contained in:
evazion
2021-11-28 21:47:04 -06:00
parent 9ec93e4dc7
commit c1a37d9577

View File

@@ -3,6 +3,10 @@ FROM ubuntu:21.04 AS base
WORKDIR /danbooru
ENV PATH="/root/.asdf/bin:/root/.asdf/shims:$PATH:/usr/lib/postgresql/14/bin"
# Reduces memory usage at the cost of higher thread contention.
# https://bugs.ruby-lang.org/issues/14718
ENV MALLOC_ARENA_MAX=2
COPY config/docker/build-base-image.sh .
RUN \