火焰图pt-tmp在一个以前的文章使用性能和火焰图像分析软件,我们看看如何生成火焰图性能输出。在这个简短的后续,我们将使用火焰图过程输出pt-pmp。火焰图没有预想的这个目的,但由于pt-pmp输出类似于折叠样品(使用的结果stackcollapse-perf.pl),我们可以利用它的功能。

主要有两个差异pt-pmp输出:

  • 第一列是线程的数量相同的回溯,和
  • 函数名是由一个逗号分开,而不是一个分号

此外,pt-pmp在第一行将打印日期,所以我们需要削减这部分,。

最后,在继续之前,谨慎的一个词。pt-pmp将使用广东发展银行在后台,这意味着MySQL时停止收集样品。一定要读文档在你考虑在生产环境中运行它。

安装包

我们能够使用工具之前,我们需要确保我们安装。为pt-pmp我们需要遵循在线文档安装Percona工具包或获得雷竞技下载官网最新的pt-pmp可执行:

对于火焰的图表,我们可以很容易地克隆GitHub项目:

运行工具

让我们假设我们使用一个简单的pt-pmp命令如下:

为了克服上述差异,我们可以使用一个短BASH一行程序,如:

这些命令是执行以下操作:

  • 尾巴- n + 2 pt-pmp.out- >只是忽略第一行,日期
  • awk的{打印2美元,1美元}- >是线程计数和回溯列交换
  • sed - e ' s /, /, / g '- >正在改变的逗号分号

在这之后,我们可以照常使用perl脚本:

-countname论点只是改变默认的“样本”文本,以便它更好的读每个数代表在这种背景下,什么是线程。

我们会得到预期的svg文件与火焰图向我们展示不同的堆叠和线程:

雷竞技下载官网Percona工具包附录

此外,我们可以使用pt-stalk不仅收集典型的信息操作系统——和mysql相关指标但收集堆栈跟踪,太。这意味着我们还将深入信息在服务器上发生了什么,能够做一个更好的分析。

你可以阅读更多关于如何收集这些样品在线文档

正如前面提到的,而通过GDB痕迹被收集,该系统将停滞不前。非常小心在生产环境中运行这个!

有用的链接

pt-pmp——总GDB堆栈跟踪选定的项目。

pt-stalk——收集法医MySQL数据当问题发生。

布伦丹格雷格-火焰图

GDB: GNU项目调试器