CentOS 5.8 上安装 systemtap-2.6
来源:互联网 发布:软件设计方案和要求 编辑:程序博客网 时间:2024/05/07 11:06
最近为了分析公司的一个 nginx + lua 的应用性能,正好需要用到春神的那套 nginx-lua 的分析脚本,因此就立马去搭建下
环境:
- CentOS 5.8
- Lua 5.2.3
- luajit-2.0.3
- systemtap-2.6
- nginx
依赖项:
- systemtap-2.6 依赖于 elfutils
注:CentOS 5.8 上面安装 systemtap-2.6 的时候,elfutils 的版本不能太高,不然会报错,安装 systemtap-2.6 失败,目前使用的版本是 elfutils-0.149
该文的前提是你已经编译安装好了支持 lua 的 nginx 版本,以及你已经安装好了 systemstap 所需的你对应操作系统的 kernel-debug-debuginfo
和 kernel-debuginfo-common
,这个版本必须和你的系统的内核版本一模一样,一个字符不一样都不行,查看版本的方法是:
[apps@TEST-APP-011 ~]$ uname -r 2.6.18-308.el5
所以我对应的版本是:
kernel-debug-debuginfo-2.6.18-308.el5.x86_64.rpmkernel-debuginfo-common-2.6.18-308.el5.x86_64.rpm
具体的安装步骤可以参考官方文档。
下载安装所需的软件
下载 systemtap-2.6
cd /tmp/ && wget https://sourceware.org/systemtap/ftp/releases/systemtap-2.6.tar.gz --no-check-certificate
下载 elfutils-0.149
cd /tmp && wget https://fedorahosted.org/releases/e/l/elfutils/0.149/elfutils-0.149.tar.bz2 --no-check-certificate
安装 systemtap-2.6
解压 elfutils-0.149
cd /tmp/ && tar -xvf elfutils-0.149.tar.bz2
解压 systemtap-2.6
cd /tmp && tar -zxvf systemtap-2.6.tar.gz
安装 systemtap-2.6
编译
cd /tmp/systemtap-2.6 && ./configure --prefix=/opt/stap --disable-docs --disable-publican --disable-refdocs CFLAGS="-g -O2" --with-elfutils=/tmp/elfutils-0.149
安装
make -j8 && make install
做软连接
sudo ln -snf /opt/stap/bin/stap /usr/bin/stap
验证命令
<pre class="prettyprint <a href=" http:=" data-ke-src=" www.ahlinux.com="" php="" "="" target="_blank" style="word-wrap: break-word; margin-top: 0px; margin-bottom: 0px; padding: 0px;">php">stap -VSystemtap translator/driver (version2.6/0.149, non-git sources)Copyright (C)2005-2014 Red Hat, Inc.and othersThis is free software; see the sourcefor copying conditions.enabled features: LIBRPM LIBSQLITE3 NSS BOOST_SHARED_PTR TR1_UNORDERED_MAP NLS LIBXML2
注:有时候运行 stap -V
命令的时候会出错,错误如下:
stap: /usr/lib64/libelf.so.1: version `ELFUTILS_1.5' not found (required by stap) stap: /usr/lib64/libdw.so.1: version `ELFUTILS_0.138' not found (required by stap) stap: /usr/lib64/libdw.so.1: version `ELFUTILS_0.142' not found (required by stap) stap: /usr/lib64/libdw.so.1: version `ELFUTILS_0.143' not found (required by stap) stap: /usr/lib64/libdw.so.1: version `ELFUTILS_0.149' not found (required by stap)
解决办法是,执行如下命令:
<pre class="prettyprint <a href=" http:=" data-ke-src=" www.ahlinux.com="" java="" "="" target="_blank" style="word-wrap: break-word; margin-top: 0px; margin-bottom: 0px; padding: 0px;">javascript">//查看 stap 的安装路径 [apps@TEST-APP-011 ~]$ eu-readelf -d /usr/bin/stap|grep -E "RPATH|RUNPATH" RPATH Library rpath: [/opt/stap/lib/systemtap] RUNPATH Library runpath: [/opt/stap/lib/systemtap]
// 加入环境变量 export LD_LIBRARY_PATH=/opt/stap/lib/systemtap:$LD_LIBRARY_PATH
使用春神的脚本
下载脚本:
git clone https://github.com/openresty/nginx-systemtap-toolkit.git
拿其中的一个脚本校验,结果如下:
sudo ./ngx-req-distr -c -m `cat /opt/nginx/sbin/nginx.pid` Tracing 5959 5960 5961 5962 5963 5964 5965 5966 5967 5968 5969 5970 5971 5972 5973 5974 5975 5976 5977 5978 5979 5980 5981 5982 5983 (/opt/nginx-lua/sbin/nginx)...worker 5959: 0 reqs, 0 connsworker 5960: 0 reqs, 0 connsworker 5961: 0 reqs, 0 connsworker 5962: 0 reqs, 0 connsworker 5963: 0 reqs, 0 connsworker 5964: 0 reqs, 0 connsworker 5965: 0 reqs, 0 connsworker 5966: 0 reqs, 0 connsworker 5967: 0 reqs, 0 connsworker 5968: 0 reqs, 0 connsworker 5969: 0 reqs, 0 connsworker 5970: 387290 reqs, 15 connsworker 5971: 610857 reqs, 106 connsworker 5972: 0 reqs, 0 connsworker 5973: 0 reqs, 0 connsworker 5974: 21 reqs, 74 connsworker 5975: 0 reqs, 0 connsworker 5976: 531284 reqs, 96 connsworker 5977: 571358 reqs, 213 connsworker 5978: 560546 reqs, 165 connsworker 5979: 629476 reqs, 14297 connsworker 5980: 575010 reqs, 247 connsworker 5981: 650624 reqs, 622 connsworker 5982: 499562 reqs, 249 connsworker 5983: 0 reqs, 0 conns
软件来源地址
- CentOS 5.8 上安装 systemtap-2.6
- CentOS 上 关于 SystemTap 安装
- CentOS 上 关于 SystemTap 安装
- Ubuntu上systemtap安装
- Centos 6.4下SystemTap安装
- systemtap 在Ubuntu上安装
- 在Red Hat Enterprise Linux 5.8上安装systemtap
- CentOS-5.2上使用源码安装SystemTap-1.1遇到的问题(SEC_ERROR_PKCS11_GENERAL_ERROR)及解决办法
- 在CentOS 6.6 x86_64上安装SystemTap/Perf+FlameGraph玩转火焰图实录
- 在ubuntu12.04上安装systemtap
- 在Ubuntu上安装使用Systemtap
- systemtap安装
- SYSTEMTAP安装
- systemtap安装
- 如何在ubuntu上基于自定义内核安装systemtap
- 【SystemTap】 Linux下安装使用SystemTap源码安装SystemTap
- ubuntu 11.10 安装systemtap
- ubuntu 11.10 安装systemtap
- cocos2dx适配方案新解
- angsrom linux opkg update 失败 解决方案
- ActionContextCleanUp的作用
- For the lonely heart to brew a tea
- Android真机调试web应用
- CentOS 5.8 上安装 systemtap-2.6
- Android 自定义View (四) 视频音量调控
- Eclipse Run Configurations
- DecimalFormat 四舍五入Float类型的坑
- ROWID更新提升UPDATE性能,不能用merge时
- 解决Android AVD的方向键DPAD不能用的问题
- SQL Server 2008禁止修改表结构的解决办法
- nutch的定时增量爬取
- HDOJ 最短路 2544【简单最短路】