内容简介:注意:需要从源代码构建版本1.10或更高版本。
Ethr
Ethr是一个用golang编写的跨平台网络性能测量工具。该项目的目标是提供本机工具,用于跨多种协议(如TCP,UDP,HTTP,HTTPS和跨多个平台)对带宽,连接,数据包,延迟,丢失进行全面的网络性能测量。
Ethr从现有的开源网络性能 工具 中获取灵感,并以这些想法为基础。对于带宽测量,它类似于iPerf3,用于TCP和UDP流量。 iPerf3有更多选项可用于执行限制测试,更丰富的功能集,而Ethr支持多线程,允许它扩展到1024甚至更高数量的连接,多个客户端与单个服务器通信等。用于延迟测量,它类似于Windows上的latte或 Linux 上的sockperf。与其他工具相比,Ethr提供了更多的测试测量,例如它在单个工具中提供带宽,连接,数据包,延迟和TCP连接设置延迟的测量。在未来,计划增加更多功能(希望其他人贡献)以及更多协议支持,使其成为网络性能测量的综合工具。与通过像cygwin这样可能限制功能的抽象层进行编译相比,由于golang,Ethr本身就是跨平台的。它希望通过结合iPerf3,ntttcp,psping,sockperf和latte等工具的功能统一性能测量,并提供跨多个平台和多种协议的单一工具。
下载
For Windows 10: https://github.com/Microsoft/Ethr/files/2640289/ethr.zip For Ubuntu: https://github.com/Microsoft/Ethr/files/2640288/ethr.gz For ArchLinux: https://aur.archlinux.org/packages/ethr
安装
注意:需要从源代码构建版本1.10或更高版本。
从源码安装
git clone https://github.com/Microsoft/ethr.git cd ethr dep ensure -v go build
Docker
docker build -t microsoft/ethr .
Linux
docker run -e GOOS=linux -v $(pwd):/out microsoft/ethr make build-docker
Windows
docker run -e BINARY_NAME=ethr.exe -e GOOS=windows -v $(pwd):/out microsoft/ethr make build-docker
OSX
docker run -e BINARY_NAME=ethr -e GOOS=darwin -v $(pwd):/out microsoft/ethr make build-docker
go get用法
go get github.com/Microsoft/ethr
ArchLinux安装
如果你使用 yay
( https://github.com/Jguer/yay ): yay -S ethr
用法
简单用法
帮助: ethr -h
服务器:
ethr -s
带文本UI的服务器:
ethr -s -ui
客户端:
ethr -c <server ip>
例:
// 开始服务 ethr -s // 使用1个线程启动客户端以进行默认(带宽)测试测量 ethr -c localhost // 使用64个线程启动连接/测试 ethr -c localhost -t c -n 64
完整的命令行
常用参数:
-h 帮助 -no 禁用日志记录到文件 -o <filename> 记录到filename指定的文件 缺省值:服务器的ethrs.log,客户端的ethrc.log,外部客户端模式的ethrxc.log -debug 记录调试输出 -ports <string> 使用自定义端口号而不是默认端口号 格式:“Key1 = Value,Key2 = value,......” 默认值:“control = 8888,tcp = 9999,udp = 9999,http = 9899,https = 9799” 控制用于ethr的控制信道通信。 对于协议,基本端口由值指定,并计算其他端口。 示例:tcp = 9999表示带宽端口:9999,CPS:9998,PPS:9997,延迟:9996 注意:必须在客户端和服务器上使用相同的端口 注意:此选项对外部客户端模式无效 -4 仅使用IP v4版本 -6 仅使用IP v6版本
服务器参数
-s 服务器模式 -ui 显示文本UI
客户端参数
-c <server>客户端模式,连接到服务器指定的名称或IP -t <b | c | p | l>测试完成,b:带宽,c: connections/s, p: packets/s,l:延迟 默认是带宽测试 -p <tcp | udp | http | https | icmp>要使用的协议,默认为TCP -n <number>要使用的会话/线程数 -l <number>用于每个请求的缓冲区大小 -i <number>延迟测试的迭代次数 -d <duration>测试运行的持续时间,例如,10s,4m,5h等.0 - 永远,默认值:10s
外部服务器参数
-m x 外部服务器模式 - 在此模式下,Ethr仅支持TCP,侦听9999 任何客户端都可以在此模式下连接到Ethr。 Ethr还可以在此模式下接收数据 此模式对于在负载均衡器后面的多个实例上运行Ethr服务器非常有用, 来自客户端的流量由负载均衡器分配给这些实例 -s 服务器模式 -ui 显示文本UI
外部客户端模式
-m x将模式设置为外部客户端模式 -c <目标>外部客户端模式中,连接到由主机指定的目的:端口 示例:-x www.microsoft.com:443或-x 10.1.0.4:22等 -t <b | cl>测试完成,b:带宽,cl:连接延迟 -d <duration>测试运行的持续时间,例如,10s,4m,5h等.0 - 永远,默认值:10s -g <duration>连续建立连接之间的间隙(或间隔)(用于连接延迟测试)
状态
Protocol | Bandwidth | Connections/s | Packets/s | Latency |
---|---|---|---|---|
TCP | Yes | Yes | No | Yes |
UDP | Yes | NA | Yes | No |
HTTP | Yes | No | No | No |
HTTPS | Yes | No | No | No |
ICMP | No | NA | No | No |
平台支持
Windows经测试:Windows 10,Windows 7 SP1
未经测试:其他Windows版本
Linux测试:
Ubuntu Linux 18.04.1 LTS,OpenSuse Leap 15
未经测试:其他Linux版本
OSX测试:
OSX由贡献者测试
其他目前尚未测试其他平台
参考来源: github ,本文由周大涛编译,转载请注明来自FreeBuf.COM
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- React性能测量和分析
- WWDC 2018:使用日志框架测量性能
- Hyperledger Caliper:测量区块链性能的工具
- 测量JavaScript函数的性能的简单方法及与其他方式对比
- Android Studio 3.0 利用 Android Profiler 测量应用性能
- .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。