概述
Ethr 是一个用 golang 编写的跨平台网络性能测量工具。该项目的目标是提供一个本地工具,用于跨 TCP、UDP、HTTP、HTTPS 等多种协议以及跨多个平台的带宽、连接/秒、数据包/秒、延迟、丢失和抖动的全面网络性能测量; Ethr 多线程,这允许它扩展到 1024 甚至更多的连接数,多个客户端与单个服务器通信等; 用于延迟测量,它类似于 Windows 上的 latte 或 Linux 上的 sockperf
1、ethr 二进制安装
wget https://github.com/microsoft/ethr/releases/download/v1.0.0/ethr_linux.zipunzip ethr_linux.zipmv ethr /usr/local/bin && chmod +x ethr2、ethr 命令行常见选项
-t 指定测试类型, 取值包括 b 带宽 c 每秒连接数 p 每秒包数 l 延迟、损耗和抖动 pi Ping 丢失和延迟-x 指定适用于到目标站点的网络测试-n 并发会话/线程数, 0 设置为当前 cpu 数-d 测试时长, 0 不限时-p 指定测试时的协议类型, 取值 tcp、udp 等网络带宽
// 启动服务端ethr -s -port 5203// 带宽测试ethr -c 192.168.31.11 -port 5203 -t b -d 1m> Using destination: 192.168.31.11, ip: 192.168.31.11, port: 5203> [ 5] local 192.168.31.16 port 30961 connected to 192.168.31.11 port 5203> - - - - - - - - - - - - - - - - - - - - - - -> [ ID ] Protocol Interval Bits/s> [ 5] TCP 000-001 sec 15.49G> [ 5] TCP 001-002 sec 18.59G> [ 5] TCP 002-003 sec 15.20G> [ 5] TCP 003-004 sec 15.48G> [ 5] TCP 004-005 sec 17.46G> [ 5] TCP 005-006 sec 16.17G> [ 5] TCP 006-007 sec 16.11G> [ 5] TCP 007-008 sec 16.30G每秒转发包数
// 启动服务端ethr -s -port 5203// UDP 每秒包转发数 压测ethr -c 192.168.31.11 -port 5203 -t p -p udp -n 0 -d 0> Using destination: 192.168.31.11, ip: 192.168.31.11, port: 5203> Protocol Interval Bits/s Pkts/s> UDP 000-001 sec 50.77M 6.35M> UDP 001-002 sec 52.93M 6.62M> UDP 002-003 sec 55.81M 6.98M> UDP 003-004 sec 52.76M 6.59M> UDP 004-005 sec 51.86M 6.48M> UDP 005-006 sec 55.79M 6.97M> UDP 006-007 sec 54.71M 6.84M> UDP 007-008 sec 55.80M 6.97M> UDP 008-009 sec 53.74M 6.72M> UDP 009-010 sec 51.79M 6.47M> UDP 010-011 sec 51.09M 6.39M> UDP 011-012 sec 51.88M 6.49M// 测试结论: 每秒包转发数 65w,// 备注: 暂不 TCP 协议的 PPS 压测每秒新建连接数
// 启动服务端ethr -s -port 5203// 每秒新建 tcp 连接数测试ethr -c 192.168.31.11 -port 5203 -t c -p tcp -d 1m -n 0> Using destination: 192.168.31.11, ip: 192.168.31.11, port: 5203> Protocol Interval Conn/s> TCP 000-001 sec 53.63K> TCP 001-002 sec 63.17K> TCP 002-003 sec 59.12K> TCP 003-004 sec 51.59K> TCP 004-005 sec 45.38K> TCP 005-006 sec 52.47K> TCP 006-007 sec 54.58K> TCP 007-008 sec 64.67K> TCP 008-009 sec 62.43K> TCP 009-010 sec 56.70K> TCP 010-011 sec 62.75K网络延时
// 启动服务端ethr -s -port 5203// TCP 延时测试ethr -c 192.168.31.11 -port 5203 -t l -p tcp -d 1m -n 0> Using destination: 192.168.31.11, ip: 192.168.31.11, port: 5203> Running latency test: 1000, 1> Avg Min 50% 90% 95% 99% 99.9% 99.99% Max> 120.508us 82.948us 112.010us 149.992us 175.457us 243.291us 427.164us 427.164us 544.289us> 167.457us 82.565us 105.179us 399.238us 615.316us 728.474us 778.789us 778.789us 795.993us> 116.686us 83.275us 110.900us 147.542us 161.407us 215.930us 370.528us 370.528us 699.011us> 120.487us 81.468us 112.020us 147.313us 173.125us 265.141us 552.161us 552.161us 844.891us> 125.260us 95.676us 116.963us 151.482us 179.537us 240.500us 466.104us 466.104us 621.117us> 122.701us 77.962us 114.985us 152.897us 175.167us 283.537us 537.144us 537.144us 795.253us> 108.325us 74.415us 103.420us 129.317us 144.962us 193.497us 369.824us 369.824us 805.387us> 134.934us 81.191us 123.791us 161.572us 218.611us 315.985us 638.850us 638.850us 713.924us> 140.875us 76.917us 120.009us 169.095us 299.080us 595.553us 653.219us 653.219us 654.012us> 118.709us 89.973us 108.923us 144.635us 174.059us 266.124us 449.520us 449.520us 609.781us网站测试
// 站点 ping 延迟ethr -x http://192.168.31.11 -p icmp -t pi -d 0 -4> Using destination: 192.168.31.11, ip: 192.168.31.11, port: 80> [icmp] [warmup] Ping to 192.168.31.11: 577.924us> [icmp] Ping to 192.168.31.11: 610.218us> [icmp] Ping to 192.168.31.11: 604.991us> [icmp] Ping to 192.168.31.11: 683.871us> [icmp] Ping to 192.168.31.11: 534.377us> [icmp] Ping to 192.168.31.11: 453.957us> [icmp] Ping to 192.168.31.11: 512.837us> [icmp] Ping to 192.168.31.11: 588.904us> [icmp] Ping to 192.168.31.11: 548.445us> -----------------------------------------------------------------------------------------> TCP connect statistics for 192.168.31.11:> Sent = 8, Received = 8, Lost = 0> -----------------------------------------------------------------------------------------> Avg Min 50% 90% 95% 99% 99.9% 99.99% Max> 567.200us 453.957us 548.445us 610.218us 610.218us 610.218us 610.218us 610.218us 683.871us> -----------------------------------------------------------------------------------------// 站点 tcp 连接延迟ethr -x http://192.168.31.11 -p tcp -t pi -d 0 -4> Using destination: 192.168.31.11, ip: 192.168.31.11, port: 80> [tcp] [warmup] Connection from [192.168.31.16]:6337 to [192.168.31.11]:80: 1.004ms> [tcp] Connection from [192.168.31.16]:61945 to [192.168.31.11]:80: 792.947us> [tcp] Connection from [192.168.31.16]:15991 to [192.168.31.11]:80: 811.263us> [tcp] Connection from [192.168.31.16]:10841 to [192.168.31.11]:80: 873.637us> [tcp] Connection from [192.168.31.16]:58697 to [192.168.31.11]:80: 951.613us> [tcp] Connection from [192.168.31.16]:30421 to [192.168.31.11]:80: 936.934us> [tcp] Connection from [192.168.31.16]:14777 to [192.168.31.11]:80: 764.685us> [tcp] Connection from [192.168.31.16]:48157 to [192.168.31.11]:80: 788.011us> [tcp] Connection from [192.168.31.16]:8247 to [192.168.31.11]:80: 920.898us> -----------------------------------------------------------------------------------------> TCP connect statistics for [192.168.31.11]:80:> Sent = 8, Received = 8, Lost = 0> -----------------------------------------------------------------------------------------> Avg Min 50% 90% 95% 99% 99.9% 99.99% Max> 854.998us 764.685us 811.263us 936.934us 936.934us 936.934us 936.934us 936.934us 951.613us> -----------------------------------------------------------------------------------------