CentOS 5.8 上安装 systemtap-2.6
最近为了分析公司的一个 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.rpm kernel-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验证命令
stap -V Systemtap translator/driver (version 2.6/0.149, non-git sources) Copyright (C) 2005-2014 Red Hat, Inc. and others This is free software; see the source for 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)
解决办法是,执行如下命令:
//查看 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 conns worker 5960: 0 reqs, 0 conns worker 5961: 0 reqs, 0 conns worker 5962: 0 reqs, 0 conns worker 5963: 0 reqs, 0 conns worker 5964: 0 reqs, 0 conns worker 5965: 0 reqs, 0 conns worker 5966: 0 reqs, 0 conns worker 5967: 0 reqs, 0 conns worker 5968: 0 reqs, 0 conns worker 5969: 0 reqs, 0 conns worker 5970: 387290 reqs, 15 conns worker 5971: 610857 reqs, 106 conns worker 5972: 0 reqs, 0 conns worker 5973: 0 reqs, 0 conns worker 5974: 21 reqs, 74 conns worker 5975: 0 reqs, 0 conns worker 5976: 531284 reqs, 96 conns worker 5977: 571358 reqs, 213 conns worker 5978: 560546 reqs, 165 conns worker 5979: 629476 reqs, 14297 conns worker 5980: 575010 reqs, 247 conns worker 5981: 650624 reqs, 622 conns worker 5982: 499562 reqs, 249 conns worker 5983: 0 reqs, 0 conns
软件来源地址
- https://fedorahosted.org/releases/e/l/elfutils/0.149/
- https://github.com/openresty/nginx-systemtap-toolkit#sample-bt
- http://debuginfo.centos.org/5/x86_64/
参考阅读
- https://github.com/openresty/nginx-systemtap-toolkit#sample-bt
- http://m.blog.csdn.net/blog/hubaolin/18146413
CentOS 5.8 上安装 systemtap-2.6的更多相关文章
- 在CentOS或RHEL上安装Nux Dextop仓库
介绍 Nux Dextop是类似CentOS.RHEL.ScientificLinux的第三方RPM仓库(比如:Ardour,Shutter等等).目前,Nux Dextop对CentOS/RHEL ...
- CentOS 6.5上安装MySQL-Cluster
参考博文: CentOS 6.2下MySQL Cluster 7.2 配置数据库集群 CentOS 6.5上安装MySQL-Cluster 7.3.4过程笔记--下一步学习 MySQL Cluster ...
- CentOS 6.9上安装mysql-5.6.36
CentOS 6.9上安装mysql-5.6.36 1.准备数据存放的文件系统 新建一个逻辑卷,并将其挂载至特定目录即可.这里不再给出过程. 这里假设其逻辑卷的挂载目录为/data,而后需要创建/da ...
- 记录CentOS 7.4 上安装MySQL&MariaDB&Redis&Mongodb
记录CentOS 7.4 上安装MySQL&MariaDB&Redis&Mongodb 前段时间我个人Google服务器意外不能用,并且我犯了一件很低级的错误,直接在gcp讲服 ...
- [转]在Linux CentOS 6.6上安装Python 2.7.9
在Linux CentOS 6.6上安装Python 2.7.9 查看python安装版本 python -V yum中最新的也是Python 2.6.6,所以只能下载Python 2.7.9的源代码 ...
- 在 CentOS 7.2 上安装 ODOO 10 (2018-10-09 持续更新)
在 CentOS 7.2 上安装 ODOO 10 更新系统 yum update 安装 EPEL 源 1 yum install -y epel-release 安装依赖组件 yum install ...
- CentOS 6.9上安装mysql-5.6.37
CentOS 6.9上安装mysql-5.6.37 1.准备数据存放的文件系统 新建一个逻辑卷,并将其挂载至特定目录即可.这里不再给出过程. 这里假设其逻辑卷的挂载目录为/data,而后需要创建/da ...
- CentOS 6.9上安装Mysql 5.7.18 安装
CentOS 6.9上安装Mysql 5.7.18 安装 下载地址:https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.18-linux-g ...
- 在 CentOS 6.4上安装Erlang
如何在CentOS 6.4上安装erlang,具体的Erlang版本是R15B03-1. 在安装之前,需要先要安装一些其他的软件,否则在安装中间会出现一些由于没有其依赖的软件模块而失败. 一开始,要是 ...
- CentOS 6.5上安装GlassFish4.0 过程笔记
CentOS 6.5上安装GlassFish4.0 过程笔记 1.安装JDK, 注意操作系统的位数, 64 or 32: [root@linuxidc ~]# mkdir /usr/java [ro ...
随机推荐
- web安全:防止浏览器记住或自动填写用户名和密码(表单)的终极解决方案
最近项目上要求做到这一点,在网上搜了一圈,发现都是不完美的,不兼容全部的浏览器,于是只能自己摸索了,最终得出了终极解决方案: 涉及: disabled 或 readonly display:none; ...
- github fork项目更改后与原作者同步更新
1.进入你的GitHub发起Pull request 2.选择compare across forks 3.反向操作.base fork改为自己的,head fork改为原作者的 4.点击 creat ...
- Prime Ring Problem -- 第一个真正意义上的 搜索
这个搜索............搜的我头都大了.......不过还是 懂了那么一点点...哈哈 从3/7晚上 做到3/8晚上------从女生到妇女 我都用来做着一道题了......... 所谓的 ...
- longpo的回文
啊...比赛的时候输入打错了,结束之后还照着题解把DP部分重构了一遍然而还是WA...样例都没过,然后直接输了-1 明显的DP...而且数据范围这么小,显然怎么搞都可以... 而且这样的回文的DP是很 ...
- 331 Verify Preorder Serialization of a Binary Tree 验证二叉树的前序序列化
序列化二叉树的一种方法是使用前序遍历.当我们遇到一个非空节点时,我们可以记录这个节点的值.如果它是一个空节点,我们可以使用一个标记值,例如 #. _9_ / \ 3 2 ...
- Hadoop Hive概念学习系列之hive与依赖环境的交互(二十一)
hive与环境的交互,算是一个小知识点,但掌握不菲! 如何在hive里,也达到这样呢? 不需要这样啦,因为,hive是建立在hadoop之上,启动hive,相当于,就是,hadoop jar ** h ...
- java学习笔记_BeatBox(GUI部分)
import java.awt.*; import javax.swing.*; public class BeatBox { JFrame theFrame; JPanel mainPanel; S ...
- 项目管理01--使用Maven构建项目(纯干货)
目录 1. Maven基础知识 2. Maven实战.开发.测试.打包.部署一个Web项目 一.Maven基础知识 Maven坐标 Maven提供了一个中央仓库,里面包含了大量的开源软件的jar包,只 ...
- html5——私有前缀
CSS3的浏览器私有属性前缀是一个浏览器生产商经常使用的一种方式.它暗示该CSS属性或规则尚未成为W3C标准的一部分,像border-radius等属性需要加私有前缀才奏效 1.-webkit-:谷歌 ...
- Ubuntu 关闭guest用户
Ubuntu 关闭guest用户 ca0gu0@ub:~$ cat /etc/lightdm/lightdm.conf [SeatDefaults]autologin-user=falseallow- ...