网络性能测试工具iperf和mtr
iperf
iperf是一个用来测量网络吞吐性能的工具,它能测试TCP或UDP的吞吐量,为了执行iperf测试,必须建立服务器(用来丢弃流量)和客户端(用来产生流量)的连接。
iperf有TCP和UDP两种测试模式,分别如下所述
TCP
测量网络带宽
报告MSS/MTU值的大小和观测值
支持TCP窗口值通过套接字缓冲
当P线程或Win32线程可用时,支持多线程。客户端与服务端支持同时多重连接
UDP
客户端可以创建指定带宽的UDP流
测量丢包
测量延迟
支持多播
当P线程可用时,支持多线程。客户端与服务端支持同时多重连接(不支持Windows)
常用参数:
-s 指定为server模式
-c 指定为client模式
-u 指定为udp
-b 指定带宽
-t 指定测量的时间
-i 指定测试间隔
-l 指定包大小,默认tcp为128KBps,udp为8KBps
举例:
iperf3 -s 在服务器端运行iperf3
iperf3 -c server-ip -i 1 -t 10 -b 1000M -u 在客户端运行iperf,默认端口5201。
MTR
mtr在一个网络工具中结合了traceroute和ping的功能,做为mtr开始,通过有目的地发送具有低ttl的包,来检查运行mtr的主机和目标主机的网络连接。通过持续地发送低TTL的包,并记录中间路由器的回应时间。通过这种方式,使mtr记录到达目的主机节点的回应包的百分比和回应包的时间。突发的丢包率上涨和回应时间变长,都会反映出一个不好的连接。
mtr -h 提供帮助命令
mtr -v 显示mtr的版本信息
mtr -r 以报告模式显示
mtr -s 用来指定ping数据包的大小
mtr -n no-dns不对IP地址做域名解析
mtr -a 来设置发送数据包的IP地址 这个对一个主机由多个IP地址是有用的
mtr -i 使用这个参数来设置ICMP返回之间的要求默认是1秒
mtr -4 IPv4
mtr -6 IPv6
举例:
[root@ip-10-247-0-115 ~]# mtr -r 182.254.34.125
HOST: ip-10-247-0-115.localdomain Loss% Snt Last Avg Best Wrst StDev
1. ec2-54-223-0-2.cn-north-1.co 0.0% 10 0.3 0.4 0.3 0.8 0.2
2. 54.222.1.90 0.0% 10 1.1 1.3 1.1 2.3 0.4
3. 54.222.1.66 0.0% 10 1.1 1.1 1.1 1.2 0.0
4. 41.220.120.106.static.bjtele 0.0% 10 1.1 1.1 1.1 1.1 0.0
5. bj141-135-174.bjtelecom.net 0.0% 10 4.8 4.2 2.4 5.6 1.3
6. 202.97.65.206 0.0% 10 38.3 45.3 33.3 73.5 13.2
7. 113.108.208.30 0.0% 10 38.3 39.7 37.7 41.3 1.1
8. 113.108.209.54 0.0% 10 37.9 38.0 37.9 38.0 0.0
9. 14.119.117.134 0.0% 10 38.2 38.3 38.2 38.9 0.2
10. ??? 100.0 10 0.0 0.0 0.0 0.0 0.0
11. ??? 100.0 10 0.0 0.0 0.0 0.0 0.0
12. ??? 100.0 10 0.0 0.0 0.0 0.0 0.0
13. 182.254.34.125 70.0% 10 42.0 42.0 42.0 42.0 0.0