博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
大话火焰图(flame graph)
阅读量:5941 次
发布时间:2019-06-19

本文共 608 字,大约阅读时间需要 2 分钟。

火焰图是什么

就是下图展示的图形

某PHP程序的On-CPU类型的火焰图例子

简而言之,就是这个图形看起来像一团跳动的火焰,这也正是名字的由来.

火焰图的作用

火焰图(flame graph)用于分析性能

火焰图该怎么看

火焰图关注哪几个部分

  • 颜色本身没有什么意义
  • 纵向表示调用栈的深度
  • 横向表示消耗的时间

上述几个部分分别体现什么

横向来看

  • 由于横向表示消耗的时间,所以一个格子的宽度越大越说明其可能是瓶颈

纵向来看

  • 由于纵向表示调用栈的深度,所以火焰的火苗尖部就是CPU正在执行的操作

综上

  • 主要看那些比较宽大的火苗
  • 特别是那些平头的火苗

如何生成火焰图

  • 首先要有一个Tracer工具
  • Linux的Tracer工具

    • (常用)perf工具,参考的介绍
    • systemtap,相对更强大,缺点是要学习该工具的编程语言

常见火焰图类型

常见的火焰图类型有 ,,还有 Memory,Hot/Cold,Differential 等等

什么时候使用On-CPU,什么时候使用Off-CPU?

  • 如果是CPU则使用On-CPU火焰图
  • 如果是IO或锁则使用Off-CPU火焰图
  • 不确定该怎么办

    1. 使用压测工具看看能否让CPU使用率趋于饱和
    2. 如果不管怎么压,CPU使用率始终上不来,那么很大可能是IO或锁出问题了,此时应该用Off-CPU火焰图,否则用On-CPU
  • 还是不确定该怎么办

    • 都搞搞
    • 正常情况下两张图的差异是比较大的
    • 如果差异不大,那么有可能是CPU被其他进程抢了

参考

转载地址:http://adqtx.baihongyu.com/

你可能感兴趣的文章
wdcp 安装
查看>>
C语言运算符优先级相关问题
查看>>
MP4视频播放器代码
查看>>
Nginx 匹配 iphone Android 微信
查看>>
ldap
查看>>
Yum软件仓库配置
查看>>
linux 压缩与解压总结
查看>>
mysql脚本1064 - You have an error in your SQL syntax; check the manual
查看>>
nessus 本地扫描(一)
查看>>
linux服务器磁盘陈列
查看>>
python----tcp/ip http
查看>>
我的友情链接
查看>>
第一本docker书学习笔记1-3章
查看>>
一個典型僵尸網絡淺析
查看>>
vmware克隆Centos6.4虚拟机网卡无法启动问题
查看>>
dba学习
查看>>
asterisk配置
查看>>
GA操作步骤和技巧(二)——用户行为分析
查看>>
shell中while循环里使用ssh的注意事项
查看>>
SHELL获取计算机外网ip的几种写法
查看>>