Node.js可以与Jemalloc一起使用(https://github.com/nodejs/node/issues/21973)。在大多数情况下,它会缩短RSS,这是我的大问题。
但我找不到任何关于如何与Jemalloc一起使用node的信息,无论是在机器上还是在docker中。
有人能帮忙吗?
我刚刚完成了将nodejs应用程序切换到jemalloc的过程,以下是我在Debian stretch上的操作:
安装jemalloc:
sudo apt-get install libjemalloc-dev
查找jemalloc二进制文件:
sudo find / -name "*jemalloc*"
在类似/usr/lib/的文件夹中查找文件。。。以.so结尾,例如路径可以是/usr/lib/x86_64-linux-gnu/libjemalloc.so
将服务器配置为对所有程序使用jemalloc:
- 使用预加载配置创建文件:
sudo nano /etc/ld.so.preload
- 将jemalloc二进制文件的路径添加到文件中:
/path/to/jemalloc/binary
- 重新启动nodejs并检查是否使用了jemalloc,例如如下所示(如果使用了jemalloc,您应该会看到一些行显示了jemaloc二进制文件(:
cat /proc/<PID OF NODEJS>/smaps | grep jemalloc
替代方案:仅对nodejs使用jemalloc
在bash中执行
export LD_PRELOAD=$LD_PRELOAD:/path/to/jemalloc/binary
在启动nodejs进程之前