Ethr是用golang编写的跨平台网络性能评估工具。该项目的目的是提供一种本机工具,用于对带宽,连接/秒,分组/秒,等待时间,损耗和带宽进行全面的网络性能测量。跨多个协议(例如TCP,UDP,HTTP,HTTPS)以及跨多个平台(例如Windows,Linux和其他Unix系统)的抖动。
Ethr从现有的开源网络性能工具中汲取了灵感,并以此为基础。对于带宽测量,它与iPerf3类似,对于TCP& UDP流量。 iPerf3具有更多选择,例如节流测试,更丰富的功能集,而Ethr支持多个线程,这使其可以扩展到1024个甚至更多的连接数,多个客户端与单个服务器的通信等。用于延迟测量,类似于Windows上的拿铁咖啡或Linux上的sockperf。
与其他工具相比,Ethr提供了更多的测试度量。它在单个工具中提供带宽,连接/秒,数据包/秒,延迟和TCP连接建立延迟的度量。将来,有计划添加更多功能(希望其他功能做出贡献)以及更多协议支持,以使其成为衡量网络性能的综合工具。
与通过可能限制功能的抽象层(例如cygwin)进行编译相比,由于使用了golang,Ethr本身就是跨平台的。它希望通过结合iPerf3,ntttcp,psping,sockperf和latte等工具的功能来统一性能度量,并提供跨多个平台和多种协议的单个工具。
我们使用go-module来管理Ethr依赖项。有关更多信息,请检查如何使用go-modules!
如果ethr克隆在$ GOPATH / src树中,请确保使用GO111MODULE = on调用go命令!
//启动serverethr -s //使用1个线程启动默认(带宽)测试测量的客户端ethr -c localhost //使用8个线程启动带宽测试ethr -c localhost -n 8 //使用64个线程到服务器10.1启动连接/ s测试.0.11ethr -c 10.1.0.11 -tc -n 64 //在端口9999上运行Ethr服务器./ethr -s -port 9999 //测量到端口9999上的ethr服务器的TCP连接设置延迟//假设Ethr服务器正在运行IP地址为10.1.1.100./ethr -c 10.1.1.100 -p tcp -t pi -d 0 -4 -port 9999 //的服务器测量到www.github.com端口443的TCP连接建立延迟./ethr- x www.github.com:443 -p tcp -t pi -d 0 -4 //测量端口443到www.github.com的TCP连接建立延迟//注意:此处端口443是由https./ethr自动驱动的-x https://www.github.com -p tcp -t pi -d 0 -4 //测量到www.github.comsudo的ICMP ping延迟./ethr -x www.github.com -p icmp -t pi -d 0 -4 //在Linuxsudo上运行类似于mtr的测量./ethr -x www.github.com -p icmp -t mtr -d 0 -4 // Meas通过发送较小的1字节数据包来通过UDP确保数据包/s./ethr -c 172.28.192.1 -p udp -t p -d 0
Warning: Can only detect less than 5000 characters
待办事项列表工作项如下所示。 欢迎为这些工作项或任何其他功能和错误修正提供文稿。 该项目欢迎您的贡献和建议。 大多数捐款要求您同意《捐款者许可协议》(CLA),声明您有权并实际上授予我们使用您的捐款的权利。 有关详细信息,请访问https://cla.microsoft.com。 提交拉取请求时,CLA机器人会自动确定您是否需要提供CLA并适当地装饰PR(例如,标签,注释)。 只需按照机器人提供的说明进行操作即可。 您只需使用我们的CLA在所有存储库中执行一次即可。 此项目已采用Microsoft开源行为准则。有关更多信息,请参阅行为准则常见问题解答,或与任何其他问题或评论联系[email protected]。