如何安装火焰图生成工具

    安装 SystemTap

    首先需要安装当前内核版本对应的开发包和调试包(这一步非常重要并且最为繁琐):

    这些 rpm 包可以在该网址中下载:

    安装 systemtap:

    在 Ubuntu 上的安装方法

    对于 Ubuntu 上的安装,参考 Ubuntu 官方维护的一个 wiki:
    https://wiki.ubuntu.com/Kernel/Systemtap

    一般来说,仅需引入 ddeb 源,然后 就能解决了。

    由于 systemtap 需要依赖某些内核特性,对于 (或更老的版本),必须重新编译内核。
    编译的步骤参见 systemtap 的这篇 wiki:

    大体上就这几步:

    火焰图绘制

    首先,需要下载 stapxx 工具包:Github地址
    该工具包中包含用 perl 写的,会生成 stap 探测代码并运行的脚本。如果是要抓 Lua 级别的情况,请使用其中的 lj-lua-stacks.sxx。
    由于 lj-lua-stacks.sxx 输出的是文件绝对路径和行号,要想匹配具体的 Lua 代码,需要用 进行转换。

    其次,下载 Flame-Graphic 生成包:Github地址,该工具包中包含多个火焰图生成工具,其中,stackcollapse-stap.pl 才是为 SystemTap 抓取的栈信息的生成工具

    如果一切正常,那么会生成 flame.svg,这便是火焰图,用浏览器打开即可。