日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

在CentOS上安装TCP协议性能评测工具tcpdive

發布時間:2023/11/27 生活经验 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在CentOS上安装TCP协议性能评测工具tcpdive 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.Tcpdive的基本原理
Tcpdive是基于linux內核的探測點機制,使用systemtap腳本語言和內嵌C代碼來實現的。?
通過定義幾類相互關聯的探測點和庫函數,來收集和處理運行中內核的數據,以及修改內核的處理邏輯。

2.源碼目錄
https://github.com/fastos/tcpdive
目前的代碼基于CentOS 6.5,內核版本號2.6.32-431.17.1開發的。在實際使用中,我們的OS及內核版本很少與此相符,所以需要我們在當前環境基于源碼編譯rpm包,再安裝。
下面我詳細描述一下我的實操過程。

3.搭建SystemTap環境
參見http://blog.csdn.net/tao_627/article/details/52137901
下面再詳細說明一下:
3.1.查詢當前內核版本,并確認內核提供utrace/uprobes用戶態支持
uname -r
2.6.32-926.504.30.3.cloud.el6-1.0-stable.x86_64
cat /boot/config-2.6.32-926.504.30.3.cloud.el6-1.0-stable.x86_64 | grep '_UTRACE'
CONFIG_UTRACE=y
3.2.安裝內核調試所需要的包
yum -y install gcc
yum -y install kernel-devel-2.6.32-926.504.30.3.cloud.el6-1.0-stable.x86_64
yum -y install kernel-debuginfo-2.6.32-926.504.30.3.cloud.el6-1.0-stable.x86_64
yum -y install kernel-debuginfo-common-x86_64-2.6.32-926.504.30.3.cloud.el6-1.0-stable.x86_64
3.3.安裝SystemTap
yum -y install systemtap
驗證SystemTap是否安裝成功?
stap -ve 'probe begin{log("hello SystemTap!")exit()}'

4.安裝tcpdive
cd ~
從github下載源碼并編譯
git clone https://github.com/fastos/tcpdive.git
cd tcpdive/script
根據當前內核版本號修改make_rpm.sh中的宏定義,
#KERNEL_VER="2.6.32-431.17.1.el6.x86_64"
KERNEL_VER="2.6.32-926.504.30.3.cloud.el6.x86_64"
然后執行

sh make_rpm.sh


對生成rpm包過程中出現的錯誤,逐一排除,參見"可能出現的問題"一節
如果一切正常的話,將會在當前script下面生成rpm包
安裝生成的rpm包
rpm -ivh tcpdive-2.6.32-926.504.30.3.cloud.el6-1.0-stable.x86_64.rpm
查詢rpm包是否安裝成功

rpm -qa | grep tcpdive



5.啟動tcpdive
修改/usr/bin/tcpdive腳本,修改對應的日志配置文件
LOG_NAME="tcpdive.log" ? ? ? ? # log file name
LOG_SIZE="500" ? ? ? ? ? ? ? ? # per log file's upper size(MB)
LOG_NUM=20 ? ? ? ? ? ? ? ? ? ? # max number of log files
PORTS="80" ? ? ? ? ? ? ? ? ? ? # server ports concerned, eg. 80,8080
然后啟動
tcpdive status
tcpdive start


6.在本機訪問指定監測端口80
過一定時間會在當前目錄看到日志文件,內容如下


7.可能出現的問題

這個問題的出現,主要是因為當前的Linux內核版本與tcpdive中的內核版本源碼有差異造成,需要根據當前內核版本來生成rpm包。上面的報錯是說,5830行沒有對應的函數。

解決方法有兩個,一個是按照上面的提示,將行號5830換為5826或是5833,另一個方法,是查找tcp_input.c源碼中每個函數所在的行號,使用下面的命令:

stap -L 'kernel.statement("tcp_rcv_state_process@net/ipv4/tcp_input.c:*")'





參考文獻
[1].http://blog.csdn.net/wangzuxi/article/details/42849053
[2].https://github.com/fastos/tcpdive

總結

以上是生活随笔為你收集整理的在CentOS上安装TCP协议性能评测工具tcpdive的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。