1. 启动特定守护进程的内存分析器
    1. ceph tell osd.3 heap start_profiler
    2. 要在OSD守护进程启动时启动内存分析器,请将环境变量设置为
    3. CEPH_HEAP_PROFILER_INIT=true

    2.最好让分析器运行几个小时,可以收集可能多的内存占用信息

    3.打印分析器收集到的堆内存统计数据

    1. ceph tell osd.3 heap stats
    1. 为了方便日后使用,也可以将堆统计数据导出到一个文件中,默认导出文件为
      /var/log/ceph/osd.0.profile.0001.heap:
    1. ceph tell osd.0 heap dump

    5.要读取该导出文件,可以使用google-perftools:

    1. yum install -y google-perftools

    6.查看内存分析器日志:

    1. pprof --text {path-to-daemon} {log-path/filename}
    2. pprof --text /usr/bin/ceph-osd /var/log/ceph/osd.0.profile.0001.

    7.如果要进行仔细对比,可以产生多个来自同一个守护进程的导出文件,使用google内存分析分析工具来比较:

    1. pprof --text --base /var/log/ceph/osd.0.profile.0001..heap /usr/bin/ceph-osd /var/log/ceph/osd.0.profile.0002.heap

    8.释放已经被TCMALLOC占用但是没有被Ceph占用的内存:

    1. ceph tell osd.3 heap release

    9.一旦完成,停止分析器

    1. ceph tell osd.3 heap stop_profiler