Azure
如何在 Azure 中確定我的網路流量的優先級?
我在 Azure 上創建了兩個 VM,一個在澳大利亞東部,另一個在巴西南部。兩台虛擬機都是經典機型,執行 Ubuntu 16.04。我在這些虛擬機上創建了端點,並在這些虛擬機上執行了一個伺服器-客戶端程序(用 C++ 編寫)。我觀察到非常高的延遲。傳輸 2MB 大約需要 4 秒。我的應用程序需要非常低的延遲(傳輸 2 MB 小於 0.1-0.2 秒)。我怎樣才能做到這一點(甚至接近那個)?有沒有辦法優先考慮我的網路流量?有沒有辦法在 Azure 上購買更多頻寬?有沒有辦法刪除 Azure 上的防火牆,這可能會減少延遲?
有沒有辦法在 Azure 上購買更多頻寬?
你的虛擬機大小是多少?增加 VM 大小可以增加 VM 的頻寬。你可以
iperf3
用來測試你的虛擬機之間的頻寬。這是我的結果。我的虛擬機是 A0 大小。root@shui:~# iperf3 -c 40.126.252.224 Connecting to host 40.126.252.224, port 5201 [ 4] local 10.0.0.4 port 37260 connected to 40.126.252.224 port 5201 [ ID] Interval Transfer Bandwidth Retr Cwnd [ 4] 0.00-1.00 sec 360 KBytes 2.95 Mbits/sec 0 55.8 KBytes [ 4] 1.00-2.18 sec 487 KBytes 3.39 Mbits/sec 0 123 KBytes [ 4] 2.18-3.00 sec 1.41 MBytes 14.3 Mbits/sec 0 266 KBytes [ 4] 3.00-4.00 sec 1.17 MBytes 9.83 Mbits/sec 1 282 KBytes [ 4] 4.00-5.00 sec 600 KBytes 4.91 Mbits/sec 0 283 KBytes [ 4] 5.00-6.00 sec 1.17 MBytes 9.83 Mbits/sec 0 291 KBytes [ 4] 6.00-7.18 sec 660 KBytes 4.57 Mbits/sec 0 300 KBytes [ 4] 7.18-8.00 sec 1.35 MBytes 13.8 Mbits/sec 0 336 KBytes [ 4] 8.00-9.00 sec 720 KBytes 5.89 Mbits/sec 0 379 KBytes [ 4] 9.00-10.00 sec 1.70 MBytes 14.2 Mbits/sec 0 442 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth Retr [ 4] 0.00-10.00 sec 9.55 MBytes 8.01 Mbits/sec 1 sender [ 4] 0.00-10.00 sec 7.96 MBytes 6.67 Mbits/sec receiver
我在我的實驗室測試,
iperf3
已安裝在 Azure Ubuntu 16.04 上。測試方法。在一台以伺服器模式執行 iperf 的 VM 上,您應該在 Endpoint 上打開埠 5201。
$ iperf3 -s
在另一個 VM 上執行單執行緒測試:
$ iperf3 -c ip-of-server
對於多執行緒測試:
$ iperf3 -c ip-of-server -P n
其中 n = VM 中的核心數
更多測試結果可以參考這篇部落格。
有沒有辦法優先考慮我的網路流量?
據我所知,您可以從以下三個方面優先考慮您的網路。
1.選擇合適的VM大小
您可以在實驗室測試 VM 頻寬並選擇合適的 VM 大小。您可以參考此連結:高性能計算 Linux VM 大小。
2.優化你的程式碼和算法。