性能优化 ---- Flame Graphs

Flame Graphs

火焰图(Flame graphs)是一种可视化分析软件,能够快速准确地识别最常见的代码路径。它们可以利用开源程序生成github.com/brendangregg/FlameGraph,这些程序创建交互式 SVG。有关其他实现,请参阅"Updates"部分。最近我一直在做一些关于d3-flame-graph的工作。

以下链接引入了不同类型的火焰图:

下面的示例是 CPU 火焰图的一部分,显示消耗 CPU 周期的 MySQL 代码路径以及消耗的 CPU 周期量。

image.png

Summary

x 轴显示堆栈函数,按字母顺序排序(它不是时间顺序显示),y 轴显示堆栈深度,从底部的零计数。每个矩形表示一个堆栈框架。帧越宽,堆栈中出现的时间越频繁。顶部边缘显示CPU 上运行的函数,其下方是它的祖先。颜色通常不代表任何含义,随机挑选以区分帧。

我的 ACMQ 文章《The Flame Graph》的Communications of the ACM, Vol. 59 No. 6,也有对此可视化效果得到充分解释。

还有我的 CPU Flame Graphs页面,以及下面的presentation

Operating Systems

火焰图可以从包含堆栈跟踪的文件数据生成,主要包括从以下分析工具:

Linux: perf, eBPF, SystemTap, and ktap
Solaris, illumos, FreeBSD: DTrace
Mac OS X: DTrace and Instruments
Windows: Xperf.exe

你所需要的只是一个可以生成有意义的堆栈探查器,将它们转换为火焰图通常是一个简单的步骤。

Presentation

我在 USENIX ATC 2017 上发表了一个更新的谈话, 标题为Visualizing Performance with Flame Graphs, 还有 youtubeslideshare (PDF)。

我关于火焰图的第一次谈话是在USENIX LISA 2013, 可以参考 (youtube, slideshare, PDF)。

你可能感兴趣的:(数据库,服务器)