Re: Make rgw use tcmalloc/jemalloc

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

 



I can't speak for RGW specifically, but we've done periodic tests over the years in other situations (primarily the OSD code) and we see pretty significant performance and memory usage improvements with tcmalloc. I think the most recent example was a test from last fall of client side performance in qemu+librbd:

https://ceph.io/en/news/blog/2022/qemu-kvm-tuning/

Simply LD_PRELOADing tcmalloc increased client side 4k randread performance from ~53.5K IOPS to ~80K IOPS. Unless you've taken specific steps to improve memory allocation behavior yourselves, I suspect RGW will continue to benefit from tcmalloc as well.

Mark


On 10/23/23 13:57, Casey Bodley wrote:
pretty sure we use the default gcc linker

it's been a while since we've done performance comparisons between
libc- and tcmalloc. it would be nice to revisit those and see whether
tcmalloc is still necessary. if it is, we need some kind of regression
test coverage to make sure our builds are using it

On Mon, Oct 23, 2023 at 1:46 PM Yixin Jin <yjin77@xxxxxxxx> wrote:

Hi Casey,

For standard ceph packages, are they built with gold or lld linker, instead of the GNU linker? I found that if gold is used, it doesn't suffer this problem of ignoring tcmalloc.

Thanks,
Yixin

On Friday, October 20, 2023 at 02:30:15 p.m. EDT, Casey Bodley <cbodley@xxxxxxxxxx> wrote:


the cmake variable ALLOCATOR can be used to request a specific
library: https://github.com/ceph/ceph/blob/f080406/CMakeLists.txt#L376-L420

rgw and other ceph binaries refer to ALLOC_LIBS to add that link dependency

On Fri, Oct 20, 2023 at 2:20 PM Casey Bodley <cbodley@xxxxxxxxxx> wrote:

On Fri, Oct 20, 2023 at 1:54 PM Yixin Jin <yjin77@xxxxxxxx> wrote:

Hi folks,

How could I make rgw built with tcmalloc/jemalloc? I had tcmalloc installed. Although build.ninja has libtcmalloc.so listed for bin/radosgw, it is still using libc’s malloc. Then I had jemalloc installed and the result is the same. What is the proper step to make rgw built with tcmalloc/jemalloc?

how can you tell that it's still using libc?

$ ldd bin/radosgw | grep tcmalloc
        libtcmalloc.so.4 => /lib64/libtcmalloc.so.4 (0x00007f0bd3000000)


Thanks
Yixin
_______________________________________________
Dev mailing list -- dev@xxxxxxx
To unsubscribe send an email to dev-leave@xxxxxxx
_______________________________________________
Dev mailing list -- dev@xxxxxxx
To unsubscribe send an email to dev-leave@xxxxxxx
_______________________________________________
Dev mailing list -- dev@xxxxxxx
To unsubscribe send an email to dev-leave@xxxxxxx
_______________________________________________
Dev mailing list -- dev@xxxxxxx
To unsubscribe send an email to dev-leave@xxxxxxx




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

  Powered by Linux