概述
基于go语言的网络性能测试工具,支持多操作系统,多协议(如: TCP, UDP, HTTP, HTTPS),主要用于网络 bandwidth, connections/s, packets/s, latency, loss等性能指标测试。
当前的支持情况如下:
基于源码进行安装
git clonehttps://github.com/Microsoft/ethr.git
cd ethr
dep ensure -v #dep为go的包管理工具,可使用glide等工具进行替换
go build
命令介绍
server模式
-s 以server mode运行.
-ui 在text UI中展示输出信息.
-ports <k=v,...> 使用指定端口.多个key=value对通过逗号分隔. Key指定protocol, value指定端口port.默认'control=8888,tcp=9999,udp=9999,http=9899,https=9799'
client模式
-c <server>以client mode 运行连接到<server>.
-r 用于Bandwidth测试,发送数据从server 到 client.
-d <duration> 用于test的时间周期(format: <num>[ms | s | m | h] 0:一直运行; 默认: 10s
-n <number> 并发Sessions (and Threads). 0: 设置与CPUs数相同 默认: 1
-ncs 打印没有Connection Stats. 常与-n option一起使用.
-l <length> buffer大小 (format: <num>[KB | MB | GB]) ,只对Bandwidth测试有效. Max 1GB. 默认: 16KB
-p <protocol> 协议 ("tcp", "udp", "http", "https", or "icmp") 默认: tcp
-ports <k=v,...> 指定端口. 键值对. Key指定 protocol, value指定 base port. 注意:client & server这个设置需要保持一致.默认: 'control=8888,tcp=9999,udp=9999,http=9899,https=9799'
-t <test> 运行测试 ("b", "c", "p", or "l") b: Bandwidth c: Connections/s or Requests/s p: Packets/s l: Latency, Loss & Jitter 默认: b - Bandwidth measurement.
-i <iterations> Number of round trip iterations for each latency measurement. 默认: 1000
External server模式
-m <mode> 必须指定'-m x'用于external mode.
-s :以server mode运行.
-ports <k=v,...> 键值对. Key指定 protocol, value指定 base port.默认: 'tcp=9999,http=9899,https=9799'
External client模式
-m <mode>必须指定'-m x'用于external mode.
-c 以external client mode运行且连接到,host:port格式. 如: www.microsoft.com:443 or 10.1.0.4:22
-d <duration> 测试时间周期 (format: <num>[ms | s | m | h] 0: 一直运行 默认: 10s
-n <number>并发 Sessions (and Threads). 0: 与CPUs数相同 默认: 1
-ncs 打印No Connection Stats,常与 -n option使用.
-l <length> buffer大小 (format: <num>[KB | MB | GB]) ,只对Bandwidth测试有效. Max 1GB. 默认: 16KB
-t <test> 运行测试 ("b", "c", "p", or "l") b: Bandwidth c: Connections/s or Requests/s p: Packets/s l: Latency, Loss & Jitter 默认: b - Bandwidth measurement.
-g <gap> 两次successive measurements 的时间间隔(format: <num>[ms | s | m | h] 0: 没有gap 默认: 1s
通用
-h Help
-no:禁用日志文件(默认,未禁用)
-o <filename> log文件名. 默认Server mode: 'ethrs.log' ;Client mode: 'ethrc.log' External server mode: 'ethrxs.log' External client mode: 'ethrxc.log'
-debug:使能debug信息输出
-4:只用于 IP v4
-6:只用于 IP v6
网友评论