Re: using jemalloc in trusty

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This looks to have done it; no indications of tcmalloc in my new packages. Thanks!

Joshua M. Boniface
Linux System Ærchitect - Boniface Labs
Sigmentation fault: core dumped

On 24/05/16 08:56 PM, Alexandre DERUMIER wrote:

And if we still need to add explicit support, does anyone have any advice for how to achieve this?

Here a small patch to build deb with jemalloc

diff --git a/debian/control b/debian/control
index 3f0f5c2..bb60dba 100644
--- a/debian/control
+++ b/debian/control
@@ -37,7 +37,6 @@ Build-Depends: autoconf,
                 libexpat1-dev,
                 libfcgi-dev,
                 libfuse-dev,
-               libgoogle-perftools-dev [i386 amd64 arm64],
                 libkeyutils-dev,
                 libleveldb-dev,
                 libnss3-dev,
diff --git a/debian/rules b/debian/rules
index de65004..f00263f 100755
--- a/debian/rules
+++ b/debian/rules
@@ -23,6 +23,7 @@ export DEB_HOST_ARCH      ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
  extraopts += --with-ocf --with-nss
  extraopts += --with-debug
  extraopts += --enable-cephfs-java
+extraopts += --with-jemalloc

  # rocksdb is not packaged by anyone.  build it if we can.
  extraopts += --with-librocksdb-static=check



----- Mail original -----
De: "Joshua M. Boniface" <joshua@xxxxxxxxxxx>
À: "ceph-users" <ceph-users@xxxxxxxxxxxxxx>
Envoyé: Mardi 24 Mai 2016 20:00:55
Objet: Re:  using jemalloc in trusty

Hello list:

I've been building my own Ceph Debian Jessie packages (and QEMU too) to get jemalloc support, and in Infernalis I was explicitly setting a dependency in the control file which seemed to work. However, that option is gone in Jewel, replaced with this /etc/default/ceph preload. Without any code changes from default, and enabling the jemalloc line in that file, I'm seeing both libraries in use by every daemon, e.g.:

ms_pipe_r 8659 31756 ceph mem REG 253,0 640600 21056 /usr/lib/libtcmalloc.so.4.2.2
ms_pipe_r 8659 31756 ceph mem REG 253,0 223936 6829 /usr/lib/x86_64-linux-gnu/libjemalloc.so.1
ms_pipe_w 8659 31757 ceph mem REG 253,0 640600 21056 /usr/lib/libtcmalloc.so.4.2.2
ms_pipe_w 8659 31757 ceph mem REG 253,0 223936 6829 /usr/lib/x86_64-linux-gnu/libjemalloc.so.1

Given the messages in this thread, it seems that the jemalloc library isn't actually being used? But if so, why would it be loaded (and why would tcmalloc *also* be loaded)? And if we still need to add explicit support, does anyone have any advice for how to achieve this?

My build procedure is quite simply:

$ git clone https://github.com/ceph/ceph.git && cd ceph
$ sudo dpkg-buildpackage -us -uc -j8

Followed by adding the generated packages to my local repo and standard "apt-get install". And yes, the main Ceph packages have dependencies on "libtcmalloc-*" (just tested trying to remove them).

_______________________________________________
ceph-users mailing list
ceph-users@xxxxxxxxxxxxxx
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com




[Index of Archives]     [Information on CEPH]     [Linux Filesystem Development]     [Ceph Development]     [Ceph Large]     [Linux USB Development]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [xfs]


  Powered by Linux