Teamtailor 已经在生产环境中使用 jemalloc 运行了几天,取得了巨大成功。今天,我们想尝试在AWS的Graviton(他们基于ARM的CPU)上运行该应用程序,看看是否可以获得更好的性价比。
我们的 jemalloc Docker 镜像设置基于John Bachir的要点,使用包含x86_64
引用的硬编码路径:
ENV LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2
ENV MALLOC_CONF= "dirty_decay_ms:1000,narenas:2,background_thread:true"
我想出的支持linux/amd64
和linux/arm64
解决方案是使用符号链接:
RUN ln -s /usr/lib/*-linux-gnu/libjemalloc.so.2 /usr/lib/libjemalloc.so.2
ENV LD_PRELOAD=/usr/lib/libjemalloc.so.2
ENV MALLOC_CONF= "dirty_decay_ms:1000,narenas:2,background_thread:true"
原文: https://jonas.brusman.se/ruby-on-rails-docker-jemalloc-multi-platform-image/