目录
docker image下载
docker pull gabyct/nuttcp
#离线保存使用
docker image save gabyct/nuttcp -o nuttcp.tar
运行
#Server 端通过 Docker run 运行
docker run -it --rm --network=host --name=nuttcp-s gabyct/nuttcp /bin/bash
#启动 nuttcp 服务,启动后并无回显
nuttcp -S
#client 端通过 Docker run 运行
docker run -it --rm --network=host --name=nuttcp-c gabyct/nuttcp /bin/bash
#启动 nuttcp 服务并进行 TCP 测试
sh# nuttcp 172.31.2.59
11407.2960 MB / 10.04 sec = 9528.7990 Mbps 38 %TX 78 %RX 0 retrans 0.17 msRTT
#以 10G 带宽进行 UDP 测试(默认1M)
nuttcp -u -R10000M 172.31.2.59
9003.2734 MB / 10.00 sec = 7552.5166 Mbps 98 %TX 73 %RX 28273 / 1180692 drop/pkt 2.39 %loss
参数
-P: 指定服务器端口。
-i:指定回显时间,默认只有当测试完成后才回显,可以设置 -i 1 使得每秒有回显。
-T:测试时间,默认10s,支持 -T 1m、-T 1h 这样的格式。
-w:窗口大小,默认单位为KB,可以使用 -w 5m这样的格式。
-u:进行 UDP 测试
-R:设置带宽,默认单位为 Kbps,默认TCP不限制,UDP限制为1,如果要进行UDP测试,需要使用 -R10000M,或者-Ru(无限制)。
-l:读写 buffer 大小,默认 UDP 为 1K/8K,TCP 为 64K。
-r:反向测试,让 Server 给 Client 发包。
极限测试用例:10G 带宽、MTU 9000、的测试设置
nuttcp -l8972 -T30 -u -w4m -Ru -i1 <server>
root@ip-172-31-9-13:/# nuttcp -u -R10000M -i1 -l8950 -w5m 172.31.2.59
nuttcp-t: Warning: send window size 212992 < requested window size 5242880
nuttcp-r: Warning: receive window size 212992 < requested window size 5242880
883.1478 MB / 1.00 sec = 7408.2545 Mbps 1644 / 105113 ~drop/pkt 1.56 ~%loss
855.2114 MB / 1.00 sec = 7173.9619 Mbps 960 / 101156 ~drop/pkt 0.95 ~%loss
869.6362 MB / 1.00 sec = 7295.0011 Mbps 3083 / 104969 ~drop/pkt 2.94 ~%loss
825.1925 MB / 1.00 sec = 6921.9880 Mbps 6726 / 103405 ~drop/pkt 6.50 ~%loss
877.8302 MB / 1.00 sec = 7363.9135 Mbps 2149 / 104995 ~drop/pkt 2.05 ~%loss
896.0959 MB / 1.00 sec = 7517.2156 Mbps 461 / 105447 ~drop/pkt 0.44 ~%loss
857.1575 MB / 1.00 sec = 7190.2649 Mbps 1554 / 101978 ~drop/pkt 1.52 ~%loss
853.2227 MB / 1.00 sec = 7157.3222 Mbps 449 / 100412 ~drop/pkt 0.45 ~%loss
890.2833 MB / 1.00 sec = 7468.2753 Mbps 643 / 104948 ~drop/pkt 0.61 ~%loss
8703.9505 MB / 10.00 sec = 7301.4744 Mbps 98 %TX 66 %RX 18268 / 1038017 drop/pkt 1.76 %loss
实际测试发现这个软件并没有 iperf 好用,但在某些情况下,可以作为对照。