pprof搭配ceph tell命令分析ceph内存
文章目錄
- 安裝
- 使用
- 使用`ceph tell`產生堆棧信息文
- 使用`pprof`工具分析內存及`ceph tell`釋放內存
- 火焰圖`FlameGraph`可視化進程堆棧信息
pprof是一個google開發的支持可視化、且可分析profile文件而達到對內存的分析。并且能夠輸出文本和圖像來支持分析過程,pprof源碼
安裝
可以直接通過gperftools工具集來安裝pprop工具
配置??祔um源,然后執行:
yum install gperftools
yum install gperftools-devel
使用
該分析過程同樣適用于其他二進制文件
使用ceph tell產生堆棧信息文
-
啟動Ceph默認的內存分析器
ceph tell mon.node1 heap start_profiler -
打印內存分析器收集到的堆棧占用數據
ceph tell mon.node1 heap stats -
將統計信息導出到文件
ceph tell mon.node1 heap dump默認導出到
/var/log/ceph/mon.node1.profile.0001.heap
使用pprof工具分析內存及ceph tell釋放內存
-
分析一個文件:
pprof --text /usr/bin/ceph-mon /var/log/ceph/mon.node1.profile.0001.heap產生如下輸出:
(pprof) top10 Total: 2525 samples 298 11.8% 11.8% 345 13.7% runtime.mapaccess1_fast64 268 10.6% 22.4% 2124 84.1% main.FindLoops 251 9.9% 32.4% 451 17.9% scanblock 178 7.0% 39.4% 351 13.9% hash_insert 131 5.2% 44.6% 158 6.3% sweepspan 119 4.7% 49.3% 350 13.9% main.DFS96 3.8% 53.1% 98 3.9% flushptrbuf95 3.8% 56.9% 95 3.8% runtime.aeshash6495 3.8% 60.6% 101 4.0% runtime.settype_flush88 3.5% 64.1% 988 39.1% runtime.mallocgc各個參數含義如下:
-
The first column contains the direct memory use in MB. 函數本身使用的內存
-
The fourth column contains memory use by the procedure and all of its callees.函數本身內存+調用函數內存
-
The second and fifth columns are just percentage representations of the numbers in the first and fourth columns. 第二第五列分別為第一列,第四列與total的比值
-
The third column is a cumulative sum of the second column.第三列為(到當前行數為止)第二列所有的和
-
對比堆文件:
pprof --text --base /var/log/ceph/mon.node1.profile.0001.heap /usr/bin/ceph-mon /var/log/ceph/mon.node1.profile.0003.heap -
釋放已經被
tcmalloc占用但是沒有被ceph占用的內存ceph tell osd.0 heap release -
一旦完成停止分析器
ceph tell osd.0 heap stop_profiler
火焰圖FlameGraph可視化進程堆棧信息
-
安裝
下載FlameGraph到自己設備
-
進入該目錄下獲取當前進程堆棧信息 perf工具
perf record -F 99 -p 181 -g --sleep 60perf record表示采集系統事件,沒有使用-e指定,則默認采集(cpu clock周期),-F 99表示每秒99次,-p 181表示針對當前進程進行分析,-g表示記錄調用棧,--sleep 60表示收集60秒的信息 -
對生成的信息進行解析
perf script > out.perf -
對解析出來的符號進行折疊
進入
FlamGraph目錄,增加以下文件的運行權限./stackcollapse-perf.pl out.perf > out.folded -
生成火焰圖
同樣要增加該文件的運行權限,生成如下文件
./flamegraph.pl out.folded > kernel.svg
總結
以上是生活随笔為你收集整理的pprof搭配ceph tell命令分析ceph内存的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 心悦3多少钱啊?
- 下一篇: 炭河古城门票14岁以下可以免费吗?