]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
[CHERRY-PICKED FOR TESTING ONLY] crimson: Enable tcmalloc when using seastar 51875/head
authorMark Nelson <mnelson@redhat.com>
Wed, 27 Apr 2022 15:06:22 +0000 (15:06 +0000)
committerMatan Breizman <mbreizma@redhat.com>
Mon, 5 Jun 2023 12:03:41 +0000 (12:03 +0000)
classic-osds have always caused significant memory fragmentation
when using the libc memory allocator due to the way that Ceph
tends to utilize memory.  In recent testing, crimson-osd was found
to use 25-27GB of RAM with the stock 3GB bluestore cache settings
(osd_memory_target is only used when tcmalloc is available).  Upon
further testing, it was found that the classic OSD is even worse,
using between 32-33GB of RAM after a 5 minute 4K sequential
write test when using libc malloc.

The good news is that it appears that crimson-osd is able to use
tcmalloc for alienstore without significant modification. Better
still, it drastically reduces memory usage.  In the same test that
resulted in 25GB RSS memory usage for crimson-osd with libc malloc,
a tcmalloc linked version took around 9GB (with an 8GB
osd_memory_target).  Since we do not yet (afaik) expose classic OSD
debugging in crimson it is tough to tell why we are still a little
over, but it's clear that for alienstore we are going to need to
use tcmalloc as we do in classic.

Signed-off-by: Mark Nelson <mnelson@redhat.com>
(cherry picked from commit 9f31ad7b7388996307808e26722260aed29d4ea1)

src/perfglue/CMakeLists.txt

index 66e2f2bf96315293e5c0a2b51377c2d50b8a88a7..9ad73d576e4e557b566d53bb25df24e8df6903b5 100644 (file)
@@ -1,4 +1,4 @@
-if(ALLOCATOR STREQUAL "tcmalloc" AND NOT WITH_SEASTAR)
+if(ALLOCATOR STREQUAL "tcmalloc")
   add_library(heap_profiler STATIC
     heap_profiler.cc)
   target_link_libraries(heap_profiler