Ethr:一款TCP、UDP和HTTP網路性能測量工具

尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️

加入LINE好友

Ethr

Ethr是一個用golang編寫的跨平台網路性能測量工具。該項目的目標是提供本機工具,用於跨多種協議(如TCP,UDP,HTTP,HTTPS和跨多個平台)對帶寬,連接,數據包,延遲,丟失進行全面的網路性能測量。

Ethr:一款TCP、UDP和HTTP網絡性能測量工具

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

例:

// 開始服務 ethr -s // 使用1個線程啟動客戶端以進行默認(帶寬)測試測量 ethr -c localhost // 使用64個線程啟動連接/測試 ethr -c localhost -t c -n 64 完整的命令行

常用參數:

-h 幫助 -no 禁用日志記錄到文件 -o 記錄到filename指定的文件 缺省值:服務器的ethrs.log,客戶端的ethrc.log,外部客戶端模式的ethrxc.log -debug 記錄調試輸出 -ports 使用自定義端口號而不是默認端口號 格式:「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 客戶端模式,連接到服務器指定的名稱或IP -t 測試完成,b:帶寬,c: connections/s, p: packets/s,l:延遲 默認是帶寬測試 -p 要使用的協議,默認為TCP -n 要使用的會話/線程數 -l 用於每個請求的緩沖區大小 -i 延遲測試的迭代次數 -d 測試運行的持續時間,例如,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:連接延遲 -d 測試運行的持續時間,例如,10s,4m,5h等.0 – 永遠,默認值:10s -g 連續建立連接之間的間隙(或間隔)(用於連接延遲測試) 狀態 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

About 尋夢園
尋夢園是台灣最大的聊天室及交友社群網站。 致力於發展能夠讓會員們彼此互動、盡情分享自我的平台。 擁有數百間不同的聊天室 ,讓您隨時隨地都能找到志同道合的好友!