Running Ceph with the tcmalloc heap profiler

loic

When running a Ceph cluster from sources, the tcmalloc heap profiler can be started for all daemons with:

CEPH_HEAP_PROFILER_INIT=true \ CEPH_NUM_MON=1 CEPH_NUM_OSD=3 \ ./vstart.sh -n -X -l mon osd

The osd.0 stats can be displayed with

$ ceph tell osd.0 heap stats *** DEVELOPER MODE: setting PATH, PYTHONPATH and LD_LIBRARY_PATH *** osd.0tcmalloc heap stats:------------------------------------------------ MALLOC: 6084984 ( 5.8 MiB) Bytes in use by application MALLOC: + 180224 ( 0.2 MiB) Bytes in page heap freelist MALLOC: + 1430776 ( 1.4 MiB) Bytes in central cache freelist MALLOC: + 7402112 ( 7.1 MiB) Bytes in transfer cache freelist MALLOC: + 5873424 ( 5.6 MiB) Bytes in thread cache freelists MALLOC: + 1290392 ( 1.2 MiB) Bytes in malloc metadata MALLOC: ------------ MALLOC: = 22261912 ( 21.2 MiB) Actual memory used (physical + swap) MALLOC: + 0 ( 0.0 MiB) Bytes released to OS (aka unmapped) MALLOC: ------------ MALLOC: = 22261912 ( 21.2 MiB) Virtual address space used MALLOC: MALLOC: 1212 Spans in use MALLOC: 65 Thread heaps in use MALLOC: 8192 Tcmalloc page size

See the Ceph memory profiling documentation for more information.