tcprstat是percona用來監測mysql響應時間的。不過對於任何執行在TCP協議上的響應時間,都可以用。
下面是一個監控示例,監控分析mysql的3306埠。
$sudo tcprstat -p 3306 -t 1 -n 5
timestamp count max min avg med stddev 95_max 95_avg 95_std 99_max 99_avg 99_std
1283261499 1870 559009 39 883 153 13306 1267 201 150 6792 323 685
1283261500 1865 25704 29 578 142 2755 889 175 107 23630 333 1331
1283261501 1887 26908 33 583 148 2761 714 176 94 23391 339 1340
1283261502 2015 304965 35 624 151 7204 564 171 79 8615 237 507
1283261503 1650 289087 35 462 146 7133 834 184 120 3565 244 358
根據上面的資訊,我們可以知道mysql在我們檢測期間,對於客戶端查詢的最大響應時間是559009(單位微妙),即0.559009秒。
你也可以讀取tcpdump的檔案進行分析。
$sudo tcpdump -i eth0 -nn port 80 -w ./tcpdump.log
$sudo tcprstat -l 10.234.9.103 -t 2 -n 5 -r ./tcpdump.log
timestamp count max min avg med stddev 95_max 95_avg 95_std 99_max 99_avg 99_std
1403180482 2 28017 26717 27367 28017 650 26717 26717 0 26717 26717 0
1403180484 0 0 0 0 0 0 0 0 0 0 0 0
注意:
如果執行的時候提示 pcap: SIOCGIFFLAGS: bonding_masters: No such device。那說明沒能自動提取伺服器ip。需要使用-l引數手動指定。
安裝tcprstat
如果是在64位作業系統中使用,可以直接下載二進位制檔案使用。步驟如下:
1、下載檔案 http://github.com/downloads/Lowercases/tcprstat/tcprstat-static.v0.3.1.x86_64
2、把下載的檔案移動到 /usr/bin
3、把檔名修改為 tcprstat
4、修改檔案許可權,增加執行許可權 chmod +x /usr/bin/tcprstat
如果你想在32位作業系統中使用,那你只能自己編譯了。程式碼下載地址 https://github.com/Lowercases/tcprstat https://launchpad.net/tcprstat
引數說明
命令列引數 簡短形式 型別 描述 預設值
--format -f 字串 輸出格式化字串 ”%T\t%n\t%M\t%m\t%a\t%h\t%S\t%95M\t%95a\t%95S\t%99M\t%99a\t%99S\n”
--help 顯示幫助資訊
--interval -t 數字 監控多少秒輸出一次統計 10
--iterations -n 數字 共輸出幾次統計資訊 1
--local -l 字串 本級ip地址列表
--port -p 數字 服務埠
--read -r 字串 pcap檔案路徑
--version 顯示版本資訊
--no-header 字串 輸出不顯示頭資訊
--header 字串 指定輸出的頭資訊
實現原理
tcprstat 是如何分析tcp包的,請檢視 tcprstat原始碼分析之tcp資料包分析
原文連結:tcprstat分析服務的響應速度利器,轉載請註明來源!