Node.js 可以与 Jemalloc 一起使用(https://github.com/nodejs/node/issues/21973)。在大多数情况下,它会缩短 RSS,这是我的大问题。
但我找不到任何有关如何将节点与 Jemalloc 一起使用的信息,也找不到在机器上或在 docker 中的信息。
有人可以帮忙吗?
我刚刚完成了将 Nodejs 应用程序切换到 jemalloc 的过程,以下是我在 Debian Stretch 上的操作方法:
安装jemalloc:
sudo apt-get install libjemalloc-dev
Run Code Online (Sandbox Code Playgroud)
找到 jemalloc 二进制文件:
sudo find / -name "*jemalloc*"
Run Code Online (Sandbox Code Playgroud)
在 /usr/lib/... 等文件夹中查找以 .so 结尾的文件,例如路径可以是/usr/lib/x86_64-linux-gnu/libjemalloc.so
配置服务器以对所有程序使用 jemalloc:
sudo nano /etc/ld.so.preload
/path/to/jemalloc/binary
cat /proc/<PID OF NODEJS>/smaps | grep jemalloc
替代方案:仅对 Nodejs 使用 jemalloc
在 bash 中执行
export LD_PRELOAD=$LD_PRELOAD:/path/to/jemalloc/binary
在启动nodejs进程之前