跳至內容

如何對 Direct Connect 網路效能問題進行疑難排解?

5 分的閱讀內容
0

我的 AWS Direct Connect 連線發生效能問題,包括輸送量低、流量延遲和封包遺失。

解決方法

**注意:**建議您建立具備 Amazon Virtual Private Cloud (Amazon VPC) 的內部部署專用測試機器。請使用 Amazon Elastic Compute Cloud (Amazon EC2) C5 或更大型的執行個體類型大小。

檢查網路或應用程式問題

透過 iPerf3 工具量測網路頻寬,並將結果與其他應用程式或工具的結果相互比較。如需更多資訊,請參閱 iPerf 網站上的什麼是 iPerf/iPerf3?

請完成以下步驟:

  1. 若要安裝 iPerf3,請依照您使用的作業系統 (OS),執行以下其中一個命令。

    Linux 和 Red Hat Enterprise Linux (RHEL):

    sudo yum install iperf3 -y

    Ubuntu:

    sudo apt install iperf3 -y
  2. 若要雙向測量輸送量,請對您的伺服器和用戶端執行以下 iPerf3 命令:

    Amazon EC2 執行個體 (伺服器):

    iperf3 -s -V

    內部部署 localhost (用戶端):

    iperf3 -c <private IP of EC2> -P 15 -t 15
    iperf3 -c <private IP of EC2> -P 15 -t 15 -R
    
    iperf3 -c <private IP of EC2> -w 256K
    iperf3 -c <private IP of EC2> -w 256K -R
    
    iperf3 -c <private IP of EC2> -u -b 1G -t 15
    iperf3 -c <private IP of EC2> -u -b 1G -t 15 -R
    

    注意: -P 會設定平行執行緒以達到最大輸送量。-R 會反轉測試方向,而 -u 則使用使用者資料包通訊協定 (UDP) 而不是 TCP 來測量封包遺失。

在以下 TCP 測試結果範例中,Bitrate 是測得的輸送量或傳輸速度。Transfer 是用戶端與伺服器之間交換的資料總量。Retry 是重新傳輸封包的數量。重新傳輸會發生在傳送端:

[ ID] Interval Transfer Bitrate Retry [SUM] 0.00-15.00 sec 7.54 GBytes 4.32 Gbits/sec 18112 sender [SUM] 0.00-15.00 sec 7.52 GBytes 4.31 Gbits/sec receiver

在以下 UDP 測試結果範例中,傳送端的 Lost 為 0%。這是因為傳送端 (ID) 和接收端 (5) 配對傳送了最大數量的 UDP 資料報。遺失/總資料報會顯示接收端遺失的封包數量以及遺失率。在此範例中,接收端遺失了 79% 的網路流量:

[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams [ 5] 0.00-15.00 sec 8.22 GBytes 4.71 Gbits/sec 0.000 ms 0/986756 (0%) sender [ 5] 0.00-15.00 sec 1.73 GBytes 989 Mbits/sec 0.106 ms 779454/986689 (79%) receiver

**注意:**如果您的 Direct Connect 連線透過公共虛擬介面使用 AWS Site-to-Site VPN,請在不使用 VPN 的情況下執行效能測試。

檢視指標和介面計數器

使用 Amazon CloudWatch Logs 檢視可協助您進行疑難排解的指標。例如,檢視 ConnectionErrorCount,並尋找非零值,這些值表示 AWS 裝置上發生 Media Access Control (MAC) 錯誤。您可以對 ConnectionErrorCount 指標使用 Sum statistic (總和統計資料)。

檢視 ConnectionLightLevelTxConnectionLightLevelRx,確認光學訊號讀數是否介於 -14.4 到 2.50 dBm 的範圍內。

檢視 ConnectionBpsEgressConnectionBpsIngressVirtualInterfaceBpsEgressVirtualInterfaceBpsIngress,確認位元速率未達到最大頻寬。

如需更多資訊,請參閱 Direct Connect 指標和維度

如果您使用的託管虛擬介面會與其他使用者共用總頻寬,請向 Direct Connect 擁有者詢問連線使用率。如需更多資訊,請參閱混合網路連線

針對以下問題檢查 Direct Connect 位置的路由器和防火牆:

  • 尋找 CPU、記憶體、連接埠使用率、丟棄和捨棄中的異常情況。
  • 執行 show interfaces statistics 命令,以識別介面的輸入與輸出錯誤,例如 Cyclic Redundancy Check (CRC)、訊框、衝突與載波錯誤。
  • 如果介面錯誤增加,請清潔或更換光纖跳線與 Small Form-factor Pluggable (SFP) 模組。

此外,請檢查 Direct Connect 是否已排定維護時段

雙向執行 MTR 以檢查網路路徑

執行 Linux 的 My Traceroute (MTR) 命令來分析網路效能。對於 Windows,建議開啟 WSL 2,以便您在 Linux 子系統上安裝 MTR。如需更多資訊,請參閱 Microsoft 網站上的 WSL 2 新功能。您可以從 SourceForge 網站下載 WinMTR

若要雙向執行 MTR,請完成以下步驟:

  1. 若要安裝 MTR,請依照您的 OS 執行以下其中一個命令:

    Amazon Linux/RHEL:

    sudo yum install mtr -y

    Ubuntu:

    sudo apt install mtr -y
  2. 針對內部部署到 AWS 的方向,請在 localhost 上執行 MTR (ICMP 型和 TCP 型):

    mtr -n -c 100 <private IP of EC2> --report$ mtr -n -T -P <EC2 instance open TCP port> -c 100 <private IP of EC2> --report
  3. 針對 AWS 到內部部署的方向,請在 EC2 執行個體上執行 MTR (ICMP 型和 TCP 型):

    mtr -n -c 100 <private IP of the local host> --report$ mtr -n -T -P <local host open TCP port> -c 100 <private IP of the local host> --report

以下範例命令和輸出顯示 ICMP 型 MTR 結果:

mtr -n -c 100 192.168.52.10 --report
Start: Sat Oct 30 20:54:39 2021
HOST:                             Loss%   Snt   Last   Avg  Best  Wrst StDev
  1.|-- 10.0.101.222               0.0%   100    0.7   0.7   0.6   0.9   0.0
  2.|-- ???                       100.0   100    0.0   0.0   0.0   0.0   0.0
  3.|-- 10.110.120.2               0.0%   100  266.5 267.4 266.4 321.0   4.8
  4.|-- 10.110.120.1              54.5%   100  357.6 383.0 353.4 423.7  19.6
  5.|-- 192.168.52.10             47.5%   100  359.4 381.3 352.4 427.9  20.6

以下範例命令和輸出顯示 TCP 型 MTR 結果:

mtr -n -T -P 80 -c 100 192.168.52.10 --report
Start: Sat Oct 30 21:03:48 2021
HOST:                             Loss%   Snt   Last   Avg  Best  Wrst StDev
  1.|-- 10.0.101.222               0.0%   100    0.9   0.7   0.7   1.1   0.0
  2.|-- ???                       100.0   100    0.0   0.0   0.0   0.0   0.0
  3.|-- 10.110.120.2               0.0%   100  264.1 265.8 263.9 295.3   3.4
  4.|-- 10.110.120.1               8.0%   100  374.3 905.3 354.4 7428. 1210.6
  5.|-- 192.168.52.10             12.0%   100  400.9 1139. 400.4 7624. 1384.3

在上述結果中,躍點中的每一列都代表資料封包從來源前往目的地時通過的網路裝置。如需有關如何讀取 MTR 測試結果的詳細資訊,請參閱 ExaVault 網站上的讀取 MTR 輸出網路診斷工具

以下範例命令和輸出顯示 ICMP 型 MTR 結果:

mtr -n -c 100 192.168.52.10 --report
Start: Sat Oct 30 20:54:39 2021
HOST:                             Loss%   Snt   Last   Avg  Best  Wrst StDev
  1.|-- 10.0.101.222               0.0%   100    0.7   0.7   0.6   0.9   0.0
  2.|-- ???                       100.0   100    0.0   0.0   0.0   0.0   0.0
  3.|-- 10.110.120.2               0.0%   100  266.5 267.4 266.4 321.0   4.8
  4.|-- 10.110.120.1              54.5%   100  357.6 383.0 353.4 423.7  19.6
  5.|-- 192.168.52.10             47.5%   100  359.4 381.3 352.4 427.9  20.6

以下範例命令和輸出顯示 TCP 型 MTR 結果:

mtr -n -T -P 80 -c 100 192.168.52.10 --report
Start: Sat Oct 30 21:03:48 2021
HOST:                             Loss%   Snt   Last   Avg  Best  Wrst StDev
  1.|-- 10.0.101.222               0.0%   100    0.9   0.7   0.7   1.1   0.0
  2.|-- ???                       100.0   100    0.0   0.0   0.0   0.0   0.0
  3.|-- 10.110.120.2               0.0%   100  264.1 265.8 263.9 295.3   3.4
  4.|-- 10.110.120.1               8.0%   100  374.3 905.3 354.4 7428. 1210.6
  5.|-- 192.168.52.10             12.0%   100  400.9 1139. 400.4 7624. 1384.3

前述範例顯示 Direct Connect 連線具有邊界閘道協定 (BGP) 對等 10.110.120.1 和 10.110.120.2。第四個和第五個目的地網路跳轉出現遺失百分比,表示 Direct Connect 連線或遠端路由器 10.110.120.1 發生問題。因為 Direct Connect 連線會優先處理 TCP 而非 ICMP,所以 TCP MTR 結果會顯示較低的遺失百分比。

以下範例命令和輸出顯示本機防火牆或 NAT 裝置的封包遺失率為 5%。封包遺失會影響所有後續網路跳轉,包括目的地:

mtr -n -c 100 192.168.52.10 --report
Start: Sat Oct 30 21:11:22 2021
HOST:                              Loss%   Snt   Last   Avg  Best  Wrst StDev
  1.|-- 10.0.101.222               5.0%   100    0.8   0.7   0.7   1.1   0.0
  2.|-- ???                       100.0   100    0.0   0.0   0.0   0.0   0.0
  3.|-- 10.110.120.2               6.0%   100  265.7 267.1 265.6 307.8   5.1
  4.|-- 10.110.120.1               6.0%   100  265.1 265.2 265.0 265.4   0.0
  5.|-- 192.168.52.10              6.0%   100  266.7 266.6 266.5 267.2   0.0

進行封包擷取並分析結果

在 localhost 和 EC2 執行個體上進行封包擷取。使用 tcpdump 或 Wireshark 公用程式取得網路流量以進行分析。如需 tcpdump 的詳細資訊,請參閱 tcpdump 網站上的 tcpdump。若要下載 Wireshark,請參閱 Wireshark 網站上的 Wireshark 下載頁面。

例如,執行以下 tcpdump 命令來取得時間戳記和主機 IP 位址:

tcpdump -i YOUR_NETWORK_INTERFACE  -s0 -w $(date +"%Y%m%d_%H%M%S").$(YOUR_HOSTNAME -s).pcap port YOUR_PORT

**注意:**將 YOUR_NETWORK_INTERFACE 替換為您的網路介面,將 YOUR_HOSTNAME 替換為您的主機名稱,並將 YOUR_PORT 替換為您的連接埠。

若要計算網路限制、頻寬延遲乘積和 TCP 緩衝區大小,請使用 Switch 網站上的 TCP 輸送量計算器。如需更多資訊,請參閱 Direct Connect 疑難排解

相關資訊

託管虛擬介面 (VIF) 與託管連線有何差異?

改善 AWS 與混合網路的效能

AWS 官方已更新 8 個月前