两种使用方式:1)本机直接在线采集;2)分析tcpdump采集到的离线pcap文件
1. 本机直接在线采集
参数:
-p :指定只采集此TCP port的请求
-t : 采集输出的时间间隔,默认为10
-n : 指定输出打印的次数,默认为1,只打印1次;如果指定为0表示无限次(ctr+c终止)
示例一:指定MySQL的port如3306, 时间间隔1S, 打印次数为无限次。
tcprstat -l `hostname -i` -p 3306 -t 1 -n 0
timestamp count max min avg med stddev 95_max 95_avg 95_std 99_max 99_avg 99_std
1461747596 0 0 0 0 0 0 0 0 0 0 0 0
1461747597 0 0 0 0 0 0 0 0 0 0 0 0
1461747598 0 0 0 0 0 0 0 0 0 0 0 0
1461747599 2 292 20 156 292 136 20 20 0 20 20 0
1461747600 53 208652 19 7361 60 36788 362 87 70 176250 3490 24191
1461747601 39 808 26 109 69 129 268 85 54 286 90 63
1461747602 5 159 54 80 61 41 70 61 7 70 61 7
1461747603 0 0 0 0 0 0 0 0 0 0 0 0
1461747604 10 101 25 61 78 29 95 56 28 95 56 28
1461747605 10 113 32 65 78 26 90 60 21 90 60 21
1461747606 0 0 0 0 0 0 0 0 0 0 0 0
1461747607 0 0 0 0 0 0 0 0 0 0 0 0
1461747608 4 92 31 60 81 27 81 49 23 81 49 23
1461747609 0 0 0 0 0 0 0 0 0 0 0 0
输出字段解读(只说重要的)
1) count : 此间隔内处理完成的请求数量 ,表示1秒内处理完成MySQL请求次数
2)95%_avg: 此间隔内,95%的的请求量的平均响应时间,单位微妙(1/10^6秒); 主要参考此列值,相当于评分去掉2.5%的“最高延迟”, 2.5%的“最低延迟”
所以此值比较能体现MySQL Server的查询平均响应时间值。 第一行此值:328, 表示95%查询平均响应时间为328毫秒
3)max: 此间隔内所有完成的请求, 响应时间最大值,单位毫秒
4)min: 此间隔内所有完成的请求,响应时间的最小值
5)avg: 此间隔内所有完成的请求, 响应时间的平均值
2 分析tcpdump采集的pcap file.
有时通过tcpdump采集数据保存到文件, 使用tcprstat对此文件进行RT的分析,这种情况往往数据文件是其他机器的,所以要使用tcprstat另外两参数:-l 和-r
-l : 指定要分析的主机IP,如果多个可以使用逗号隔开。
-r : 指定使用tcpdump抓取的pacp文件 。
示例二:
1)使用tcpdump抓取数据包:
采集主机上的所有3306端口的包(包含目标地址是其他主机ip:3306)
tcpdump -s 65535 -x -nn -q -tttt -i bond0 host `hostname -i` and port 3306 -c 10000 -w /tmp/tcpdump.pcap
采集主机上的所有包源地址是该主机ip:3306或者目标地址是该主机ip:3306(只能是MySQL)
tcpdump -s 65535 -x -nn -q -tttt -i bond0 \( src host `hostname -i` and src port 3306 \) or \( dst host `hostname -i` and dst port 3306 \) -c 10000 -w /tmp/tcpdump.pcap
2)使用tcprstat分析由tcpdump采集的数据包文件 。
tcprstat -l `hostname -i` -p 3306 -t 1 -r /tmp/tcpdump.pcap