首页 > 系统相关 >pprof搭配ceph tell命令分析ceph内存

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

时间:2022-11-04 11:38:13浏览次数:77  
标签:pprof ceph mon heap tell 内存


文章目录

  • ​​安装​​
  • ​​使用​​
  • ​​使用`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.DFS
96 3.8% 53.1% 98 3.9% flushptrbuf
95 3.8% 56.9% 95 3.8% runtime.aeshash64
95 3.8% 60.6% 101 4.0% runtime.settype_flush
88 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,mon,heap,tell,内存
From: https://blog.51cto.com/u_13456560/5823156

相关文章

  • grafana jpprof 试用
    grafanajpprof是为了方便grafanaphlare对于java语言支持开发的一个包,可以让java语言方便的自持pprof格式的内容,进行持续性能优化以下是一个简单的试用环境准备......
  • 02_IntelliJ IDEA常用快捷键
    【常见快捷键】Ctrl+Shift+Enter语句完成 “!”否定完成输入表达式时按“!”键Ctrl+E最近的文件 Ctrl+Shift+E最近更改的文件 Shift+Click可以......
  • 11 Ceph 集群测试
    目录mon高可用测试模拟mon节点宕掉一个mon节点宕机后,测试集群业务情况宕掉集群中2个mon节点测试业务是否正常集群mon服务恢复mds主从切换查看集群状态信息手动模......
  • cephfs 相关命令
    cephFS一个Ceph文件系统需要至少两个RADOS存储池,一个用于数据、一个用于元数据。配置这些存储池时需考虑:为元数据存储池设置更高的副本级别,因为此存储池丢失任何数......
  • 【笔记】IntelliJ IDEA常用快捷键
    Ctrl+[Enter]:光标不动,在下一行前插入空行Ctrl+Shift+[Enter]:调整此行的缩进(如符号左右加空格)Ctrl+Alt+L:调整所有行的缩进Ctrl+E:显示最近的文件列表Ctrl+E+Shift:显示最近更改......
  • IntelliJ IDEA and Eclipse Shortcuts
    https://www.cloudflight.io/en/blog/intellij-idea-and-eclipse-shortcuts/ AfteraroundsevenyearsofexclusivelyusingEclipseforJavadevelopmentIrecent......
  • ceph-slow ops
    https://zhuanlan.zhihu.com/p/440464163https://access.redhat.com/documentation/en-us/red_hat_ceph_storage/3/html/troubleshooting_guide/troubleshooting-osds#slo......
  • IntelliJ IDEA 的安装、配置与使用
    一、IntelliJIDEA介绍–EclipseIBM1.JetBrains公司介绍一、IntelliJIDEA介绍–EclipseIBM1.JetBrains公司介绍IDEA(https://www.jetbrains.com/idea/)是JetBra......
  • 未安装c的visualstudio语言支持。代码编辑IntelliSense将不可用
    错误如下:未安装c的visualstudio语言支持。代码编辑IntelliSense将不可用。服务器空间的标记IntelliSense可能不起作用 运行VisualStudio2008的时候弹出一个如题的......
  • intellij IDEA+JAVA 做一个登陆界面,用到了mysql数据库
      今天打算学习一下IDEA+JAVA的框架搞点事情。网上发现个例子。发现有很多BUG。因为用到了mysql。还需要去装SQL安装包。以前有点经验。所以就弄了一下。首先下载MYSQL......