将内存分配器更改为 Jemalloc Centos 6

将内存分配器更改为 Jemalloc Centos 6

读完本文后关于 jemalloc 等内存分配器对高线程应用程序的影响的博客文章我想在我们的一些服务器集群上进行更大规模的测试。我们在 24 核机器上运行 sphinx 和 apache,使用线程。

安装 jemalloc 非常简单。我们运行的是 Centos 6,所以 yum install jemalloc jemalloc-devel 就行了。我的问题是,我们如何将系统上的所有内容更改为使用 jemalloc 而不是 Centos 内置的默认 malloc。研究表明这是一个潜在的选择:

LD_PRELOAD=$LD_PRELOAD:/usr/lib64/libjemalloc.so.1

这足以使用 jemalloc 获得一切吗?

答案1

这是一个简单的答案(实际上我仍然不明白你的研究怎么会错过它):

/etc/ld.so.preload

它记录在 ld.so(8) 中 — man 8 ld.so: «...

/etc/ld.so.preload — 文件包含在程序之前要加载的 ELF 共享库的空格分隔列表。

…”

答案2

我发现相同的 解决方案在我的研究过程中。更加详细的分步说明。那里还说很多公司都转向了 jemalloc(例如 Facebook)或 tcmalloc(例如 Github)。所以你也可以尝试使用 tcmalloc(安装非常相似)或者按照说明使用 jemalloc。

相关内容