摘要:最近為了分析公司的一個(gè)的應(yīng)用性能,正好需要用到春神的那套的分析腳本,因此就立馬去搭建下環(huán)境依賴項(xiàng)依賴于注上面安裝的時(shí)候,的版本不能太高,不然會(huì)報(bào)錯(cuò),安裝失敗,目前使用的版本是該文的前提是你已經(jīng)編譯安裝好了支持的版本,以及你已經(jīng)
最近為了分析公司的一個(gè) nginx + lua 的應(yīng)用性能,正好需要用到春神的那套 nginx-lua 的分析腳本,因此就立馬去搭建下
環(huán)境:
CentOS 5.8
Lua 5.2.3
luajit-2.0.3
systemtap-2.6
nginx
依賴項(xiàng):
systemtap-2.6 依賴于 elfutils
注:CentOS 5.8 上面安裝 systemtap-2.6 的時(shí)候,elfutils 的版本不能太高,不然會(huì)報(bào)錯(cuò),安裝 systemtap-2.6 失敗,目前使用的版本是 elfutils-0.149
該文的前提是你已經(jīng)編譯安裝好了支持 lua 的 nginx 版本,以及你已經(jīng)安裝好了 systemstap 所需的你對(duì)應(yīng)操作系統(tǒng)的 kernel-debug-debuginfo 和 kernel-debuginfo-common,這個(gè)版本必須和你的系統(tǒng)的內(nèi)核版本一模一樣,一個(gè)字符不一樣都不行,查看版本的方法是:
[apps@TEST-APP-011 ~]$ uname -r 2.6.18-308.el5
所以我對(duì)應(yīng)的版本是:
kernel-debug-debuginfo-2.6.18-308.el5.x86_64.rpm kernel-debuginfo-common-2.6.18-308.el5.x86_64.rpm
具體的安裝步驟可以參考官方文檔。
下載安裝所需的軟件 下載 systemtap-2.6cd /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
驗(yàn)證命令
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
注:有時(shí)候運(yùn)行 stap -V 命令的時(shí)候會(huì)出錯(cuò),錯(cuò)誤如下:
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)
解決辦法是,執(zhí)行如下命令:
//查看 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]
// 加入環(huán)境變量 export LD_LIBRARY_PATH=/opt/stap/lib/systemtap:$LD_LIBRARY_PATH使用春神的腳本
下載腳本:
git clone https://github.com/openresty/nginx-systemtap-toolkit.git
拿其中的一個(gè)腳本校驗(yàn),結(jié)果如下:
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軟件來(lái)源地址
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
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/39122.html
摘要:最近為了分析公司的一個(gè)的應(yīng)用性能,正好需要用到春神的那套的分析腳本,因此就立馬去搭建下環(huán)境依賴項(xiàng)依賴于注上面安裝的時(shí)候,的版本不能太高,不然會(huì)報(bào)錯(cuò),安裝失敗,目前使用的版本是該文的前提是你已經(jīng)編譯安裝好了支持的版本,以及你已經(jīng) 最近為了分析公司的一個(gè) nginx + lua 的應(yīng)用性能,正好需要用到春神的那套 nginx-lua 的分析腳本,因此就立馬去搭建下 環(huán)境: CentO...
摘要:在上安裝標(biāo)簽空格分隔監(jiān)控首先說(shuō)一句,在上安裝真的很坑爹。。。或如果上面這個(gè)方法無(wú)法安裝那就用源碼安裝的方法。安裝開始好幾次就死在安裝這個(gè)上面,版本的通過(guò)命令安裝的不行,對(duì)應(yīng)版本的包的名字叫做。 在 CentOS 5.8 上安裝 Graphite 標(biāo)簽(空格分隔): 監(jiān)控 monitor CentOS 5.8 Graphite 首先說(shuō)一句,在 CentOS 5.8 上安裝真的很坑爹...
摘要:多一個(gè)技能多一條出路,祝你在自學(xué)道路上越走越好,掌握自己的核心技能,不只是優(yōu)秀,還要成為不可替代的人 NodeJs+Express+Mysql + Vuejs 項(xiàng)目實(shí)戰(zhàn) 最近準(zhǔn)備寫一系列文章,全面講述如何基于NodeJs + Express + Mysql + Vuejs 從零開發(fā)前后端完全分離項(xiàng)目; 文筆及技術(shù)可能在某些方面欠佳,請(qǐng)您指正,共同學(xué)習(xí)進(jìn)步 前端:Vuejs全家桶 后端:...
閱讀 2038·2021-10-08 10:05
閱讀 1881·2021-09-22 15:31
閱讀 3002·2021-09-22 15:13
閱讀 3478·2021-09-09 09:34
閱讀 2072·2021-09-03 10:46
閱讀 3112·2019-08-30 15:56
閱讀 1696·2019-08-30 15:53
閱讀 2350·2019-08-30 15:44