3

Node.js 可以与 Jemalloc 一起使用(https://github.com/nodejs/node/issues/21973)。在大多数情况下,它会缩短 RSS,这是我的大问题。

但我找不到任何关于如何在 Jemalloc、机器上或 docker 中使用节点的信息。

有人可以帮忙吗?

4

1 回答 1

4

我刚刚完成了将我们的 nodejs 应用程序切换到 jemalloc 的过程,这是我在 Debian 伸展上的操作方式:

安装jemalloc:

sudo apt-get install libjemalloc-dev

找到 jemalloc 二进制文件:

sudo find / -name "*jemalloc*"

在 /usr/lib/... 以 .so 结尾的文件夹中查找文件,例如路径可以是/usr/lib/x86_64-linux-gnu/libjemalloc.so

配置服务器以对所有程序使用 jemalloc:

  1. 使用预加载配置创建文件:

sudo nano /etc/ld.so.preload

  1. 将 jemalloc 二进制文件的路径添加到文件中:

/path/to/jemalloc/binary

  1. 重新启动 nodejs 并检查是否使用了 jemalloc,例如像这样(如果使用了 jemalloc,您应该会看到一些显示 jemalloc 二进制文件的行):

cat /proc/<PID OF NODEJS>/smaps | grep jemalloc

替代方案:仅对 nodejs 使用 jemalloc

在 bash 中执行

export LD_PRELOAD=$LD_PRELOAD:/path/to/jemalloc/binary

在启动 nodejs 进程之前

于 2018-11-21T13:03:55.523 回答