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

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

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

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

这将足以让所有使用jemalloc?

这是微不足道的答案(实际上,我仍然不明白你的研究可能会错过它):

/etc/ld.so.preload

这是logging在ld.so(8) – man 8 ld.so :«…

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

…»

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