使用Systemtap生成Flame Graph(火焰图)

本文详细介绍了如何在CentOS 6.4环境下,利用Systemtap生成Flame Graph。首先,检查内核是否支持utrace/uprobes,然后安装必要的软件包,包括Systemtap及其依赖。接着,编写Systemtap脚本来定时采样指定进程的内核栈和用户态栈信息。在对nginx进行压测的同时执行脚本,可能会遇到警告,但不影响最终生成火焰图。最后,使用Perl脚本将输出转换为火焰图。
摘要由CSDN通过智能技术生成
之所以再写一篇博客,主要是原文的内容显示的有问题,直接贴文章中的脚本有问题,另外文章中也没有说明可能遇到的一些问题。
以下的安装步骤是在CentOS 6.4下进行的,内核版本是2.6.32-358.el6.x86_64,选择的应用软件是nginx-1.4.2。
1、检查内核是否提供utrace/uprobes用户态支持
打开/boot/config-2.6.32-358.el6.x86_64文件(内核版本不同,文件名不同),检查CONFIG_UTRACE宏是否设置。如果没有,很遗憾,要么自己打上补丁重新编译内核,或者选择其他的内核版本。
2、安装所需要的包
Systemtap的安装需要systemtap和systemtap-runtime rpm包。由于SystemTap是将脚本编译成内核模块然后插入到系统中,需要内核源码树,因此要安装kernel-devel、kernel-debuginfo、kernel-debuginfo-common包。debuginfo包在 debuginfo.centos.org下载。
3、编写SystemTap脚本
global bt
global quit = 0

probe timer.profile {
if (pid() == target()) {
if (
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值