一些经过精心设计的图片可以将不易读的数据以非常直观的方式呈现出来,揭示数据中蕴含的重要信息。
持续更新…
每个时刻都有一张分布直方图,将它们从二维平面上揭起竖立,然后按时间顺序挤压到一起成为一个三维物体,从上方看到的这个三维物体的平面图就是延迟热图,Latency Heat Maps中有详细介绍。
每一列都是一张直方图的,颜色越深表示方柱越高,竖坐标是直方图的统计的数值范围,横坐标是时间轴。
Brendan Gregg在进行延迟分析的时候发明该图,这个图片很好展示了数值分布随时间变换的情况。
通过定时采样的方式探测到每个函数的运行时间,然后将这些函数按照调用关系堆放,被调用的位于上方,位于同一层的函数按照它们运行时间(在采样数据中的比例)分配占用的宽度,得到图片就是火焰图,Flame Graphs。
哪个函数是系统瓶颈在火焰图中一目了然:位于平顶位置函数
。理想的火焰图中应当全部是尖峰,表示每一个函数都很快运行结束,如果出现平顶,说明平顶的函数运行时间较长,需要被优化,平顶越高优化后效果越显著。
火焰图相关笔记: