- 启动特定守护进程的内存分析器
ceph tell osd.3 heap start_profiler
要在OSD守护进程启动时启动内存分析器,请将环境变量设置为
CEPH_HEAP_PROFILER_INIT=true
2.最好让分析器运行几个小时,可以收集可能多的内存占用信息
3.打印分析器收集到的堆内存统计数据
ceph tell osd.3 heap stats
- 为了方便日后使用,也可以将堆统计数据导出到一个文件中,默认导出文件为
/var/log/ceph/osd.0.profile.0001.heap:
ceph tell osd.0 heap dump
5.要读取该导出文件,可以使用google-perftools:
yum install -y google-perftools
6.查看内存分析器日志:
pprof --text {path-to-daemon} {log-path/filename}
pprof --text /usr/bin/ceph-osd /var/log/ceph/osd.0.profile.0001.
7.如果要进行仔细对比,可以产生多个来自同一个守护进程的导出文件,使用google内存分析分析工具来比较:
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占用的内存:
ceph tell osd.3 heap release
9.一旦完成,停止分析器
ceph tell osd.3 heap stop_profiler