资讯专栏INFORMATION COLUMN

CentOS 5.8 上安装 systemtap-2.6

fuchenxuan / 704人阅读

摘要:最近为了分析公司的一个的应用性能,正好需要用到春神的那套的分析脚本,因此就立马去搭建下环境依赖项依赖于注上面安装的时候,的版本不能太高,不然会报错,安装失败,目前使用的版本是该文的前提是你已经编译安装好了支持的版本,以及你已经

最近为了分析公司的一个 nginx + lua 的应用性能,正好需要用到春神的那套 nginx-lua 的分析脚本,因此就立马去搭建下

环境:

CentOS 5.8

Lua 5.2.3

luajit-2.0.3

systemtap-2.6

nginx

依赖项:

systemtap-2.6 依赖于 elfutils

</>复制代码

  1. 注:CentOS 5.8 上面安装 systemtap-2.6 的时候,elfutils 的版本不能太高,不然会报错,安装 systemtap-2.6 失败,目前使用的版本是 elfutils-0.149

该文的前提是你已经编译安装好了支持 lua 的 nginx 版本,以及你已经安装好了 systemstap 所需的你对应操作系统的 kernel-debug-debuginfokernel-debuginfo-common,这个版本必须和你的系统的内核版本一模一样,一个字符不一样都不行,查看版本的方法是:

</>复制代码

  1. [apps@TEST-APP-011 ~]$ uname -r
  2. 2.6.18-308.el5

所以我对应的版本是:

</>复制代码

  1. kernel-debug-debuginfo-2.6.18-308.el5.x86_64.rpm
  2. kernel-debuginfo-common-2.6.18-308.el5.x86_64.rpm

具体的安装步骤可以参考官方文档。

下载安装所需的软件 下载 systemtap-2.6

</>复制代码

  1. cd /tmp/ && wget https://sourceware.org/systemtap/ftp/releases/systemtap-2.6.tar.gz --no-check-certificate
下载 elfutils-0.149

</>复制代码

  1. 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

</>复制代码

  1. cd /tmp/ && tar -xvf elfutils-0.149.tar.bz2

解压 systemtap-2.6

</>复制代码

  1. cd /tmp && tar -zxvf systemtap-2.6.tar.gz

安装 systemtap-2.6

编译

</>复制代码

  1. cd /tmp/systemtap-2.6 && ./configure --prefix=/opt/stap --disable-docs --disable-publican --disable-refdocs CFLAGS="-g -O2" --with-elfutils=/tmp/elfutils-0.149

安装

</>复制代码

  1. make -j8 && make install

做软连接

</>复制代码

  1. sudo ln -snf /opt/stap/bin/stap /usr/bin/stap

验证命令

</>复制代码

  1. stap -V
  2. Systemtap translator/driver (version 2.6/0.149, non-git sources)
  3. Copyright (C) 2005-2014 Red Hat, Inc. and others
  4. This is free software; see the source for copying conditions.
  5. enabled features: LIBRPM LIBSQLITE3 NSS BOOST_SHARED_PTR TR1_UNORDERED_MAP NLS LIBXML2

</>复制代码

  1. 注:有时候运行 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)

解决办法是,执行如下命令:

</>复制代码

  1. //查看 stap 的安装路径
  2. [apps@TEST-APP-011 ~]$ eu-readelf -d /usr/bin/stap|grep -E "RPATH|RUNPATH"
  3. RPATH Library rpath: [/opt/stap/lib/systemtap]
  4. RUNPATH Library runpath: [/opt/stap/lib/systemtap]

</>复制代码

  1. // 加入环境变量
  2. export LD_LIBRARY_PATH=/opt/stap/lib/systemtap:$LD_LIBRARY_PATH
使用春神的脚本

下载脚本:

</>复制代码

  1. git clone https://github.com/openresty/nginx-systemtap-toolkit.git

拿其中的一个脚本校验,结果如下:

</>复制代码

  1. sudo ./ngx-req-distr -c -m `cat /opt/nginx/sbin/nginx.pid`
  2. 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)...
  3. worker 5959: 0 reqs, 0 conns
  4. worker 5960: 0 reqs, 0 conns
  5. worker 5961: 0 reqs, 0 conns
  6. worker 5962: 0 reqs, 0 conns
  7. worker 5963: 0 reqs, 0 conns
  8. worker 5964: 0 reqs, 0 conns
  9. worker 5965: 0 reqs, 0 conns
  10. worker 5966: 0 reqs, 0 conns
  11. worker 5967: 0 reqs, 0 conns
  12. worker 5968: 0 reqs, 0 conns
  13. worker 5969: 0 reqs, 0 conns
  14. worker 5970: 387290 reqs, 15 conns
  15. worker 5971: 610857 reqs, 106 conns
  16. worker 5972: 0 reqs, 0 conns
  17. worker 5973: 0 reqs, 0 conns
  18. worker 5974: 21 reqs, 74 conns
  19. worker 5975: 0 reqs, 0 conns
  20. worker 5976: 531284 reqs, 96 conns
  21. worker 5977: 571358 reqs, 213 conns
  22. worker 5978: 560546 reqs, 165 conns
  23. worker 5979: 629476 reqs, 14297 conns
  24. worker 5980: 575010 reqs, 247 conns
  25. worker 5981: 650624 reqs, 622 conns
  26. worker 5982: 499562 reqs, 249 conns
  27. 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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/17367.html

相关文章

  • CentOS 5.8 安装 systemtap-2.6

    摘要:最近为了分析公司的一个的应用性能,正好需要用到春神的那套的分析脚本,因此就立马去搭建下环境依赖项依赖于注上面安装的时候,的版本不能太高,不然会报错,安装失败,目前使用的版本是该文的前提是你已经编译安装好了支持的版本,以及你已经 最近为了分析公司的一个 nginx + lua 的应用性能,正好需要用到春神的那套 nginx-lua 的分析脚本,因此就立马去搭建下 环境: CentO...

    leoperfect 评论0 收藏0
  • CentOS 5.8 安装 Graphite

    摘要:在上安装标签空格分隔监控首先说一句,在上安装真的很坑爹。。。或如果上面这个方法无法安装那就用源码安装的方法。安装开始好几次就死在安装这个上面,版本的通过命令安装的不行,对应版本的包的名字叫做。 在 CentOS 5.8 上安装 Graphite 标签(空格分隔): 监控 monitor CentOS 5.8 Graphite 首先说一句,在 CentOS 5.8 上安装真的很坑爹...

    banana_pi 评论0 收藏0
  • NodeJs+Express+Mysql + Vuejs 项目实战 - 大纲

    摘要:多一个技能多一条出路,祝你在自学道路上越走越好,掌握自己的核心技能,不只是优秀,还要成为不可替代的人 NodeJs+Express+Mysql + Vuejs 项目实战 最近准备写一系列文章,全面讲述如何基于NodeJs + Express + Mysql + Vuejs 从零开发前后端完全分离项目; 文笔及技术可能在某些方面欠佳,请您指正,共同学习进步 前端:Vuejs全家桶 后端:...

    noONE 评论0 收藏0

发表评论

0条评论

fuchenxuan

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<