日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

pprof搭配ceph tell命令分析ceph内存

發布時間:2023/11/27 生活经验 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pprof搭配ceph tell命令分析ceph内存 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

        • 安裝
        • 使用
          • 使用`ceph tell`產生堆棧信息文
          • 使用`pprof`工具分析內存及`ceph tell`釋放內存
          • 火焰圖`FlameGraph`可視化進程堆棧信息

pprof是一個google開發的支持可視化、且可分析profile文件而達到對內存的分析。并且能夠輸出文本和圖像來支持分析過程,pprof源碼

安裝

可以直接通過gperftools工具集來安裝pprop工具

配置海康yum源,然后執行:

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 60

    perf 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内存的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。