之所以再写一篇博客,主要是原文的内容显示的有问题,直接贴文章中的脚本有问题,另外文章中也没有说明可能遇到的一些问题。 
 
  以下的安装步骤是在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 ( !quit) {
  global quit = 0
probe timer.profile {
if (pid() == target()) {
if ( !quit) {

 
                   
                   
                   
                   本文详细介绍了如何在CentOS 6.4环境下,利用Systemtap生成Flame Graph。首先,检查内核是否支持utrace/uprobes,然后安装必要的软件包,包括Systemtap及其依赖。接着,编写Systemtap脚本来定时采样指定进程的内核栈和用户态栈信息。在对nginx进行压测的同时执行脚本,可能会遇到警告,但不影响最终生成火焰图。最后,使用Perl脚本将输出转换为火焰图。
本文详细介绍了如何在CentOS 6.4环境下,利用Systemtap生成Flame Graph。首先,检查内核是否支持utrace/uprobes,然后安装必要的软件包,包括Systemtap及其依赖。接着,编写Systemtap脚本来定时采样指定进程的内核栈和用户态栈信息。在对nginx进行压测的同时执行脚本,可能会遇到警告,但不影响最终生成火焰图。最后,使用Perl脚本将输出转换为火焰图。
           最低0.47元/天 解锁文章
最低0.47元/天 解锁文章
                           
                       
       
           
                 
                 
                 
                 
                 
                
               
                 
                 
                 
                 
                
               
                 
                 扫一扫
扫一扫
                     
              
             
                   619
					619
					
 被折叠的  条评论
		 为什么被折叠?
被折叠的  条评论
		 为什么被折叠?
		 
		  到【灌水乐园】发言
到【灌水乐园】发言                                
		 
		 
    
   
    
   
             
            


 
            