彈性網路轉接器 (ENA) Windows 驅動程式故障診斷 - Amazon Elastic Compute Cloud

彈性網路轉接器 (ENA) Windows 驅動程式故障診斷

彈性網路轉接器 (ENA) 設計旨在提高作業系統運作狀態,並減少可能中斷 Windows 執行個體操作的預料之外硬體行為或故障。ENA 架構盡可能使裝置或驅動程式的故障對作業系統保持透明。

本主題提供 ENA Windows 驅動程式的故障診斷資訊。

無法連線

如果您無法連線至您的執行個體,請參閱 無法連線故障診斷執行個體

注意

您也可以透過 AWS Systems Manager Session Manager 連接至執行個體。然而,執行此作業需要預先設定。如需詳細資訊,請參閱 AWS Systems Manager 使用者指南中的 Session Manager

收集有關執行個體的診斷資訊

開啟 Windows 作業系統 (OS) 工具的步驟會有所不同,具體取決於您執行個體上安裝的作業系統版本。在以下各部分,我們使用 Run (執行) 對話方塊開啟工具,該工具在所有作業系統版本的操作方式均相同。但是,您可以使用偏好的任何方法來存取這些工具。

存取 Run (執行) 對話方塊

  • 使用 Windows 標誌鍵組合:Windows + R

  • 使用搜尋列:

    • 在搜尋列中,輸入 run

    • 從搜尋結果中選擇 Run (執行) 應用程式。

某些步驟需要內容功能表才能存取屬性或內容相關動作。根據您的作業系統版本和硬體,可透過多種方式執行此作業。

存取內容功能表

  • 使用滑鼠:在項目上按一下滑鼠右鍵以顯示其內容功能表。

  • 使用鍵盤:

    • 根據您的作業系統版本,使用 Shift + F10Ctrl + Shift + F10

    • 如果鍵盤上有內容鍵 (方塊中帶有三條水平線),請選擇所需項目,然後按內容鍵。

如果可以連接到自己的執行個體,請使用以下技術收集診斷資訊以進行故障診斷。

檢查 ENA 裝置狀態

若要使用 Windows Device Manager 檢查 ENA Windows 驅動程式的狀態,請按照下列步驟操作:

  1. 使用上一部分中描述的其中一種方法開啟 Run (執行) 對話方塊。

  2. 若要開啟 Windows Device Manager (裝置管理員),請在 Run (執行) 對話方塊中輸入 devmgmt.msc

  3. 選擇 OK (確定)。這將開啟 Device Manager (裝置管理員) 視窗。

  4. 選取 Network adapters (網路轉接器) 左側的箭頭以展開清單。

  5. 選取名稱,或開啟 Amazon Elastic Network Adapter (Amazon 彈性網路轉接器) 的內容功能表,然後選擇 Properties (屬性)。

  6. 驗證 Amazon Elastic Network Adapter Properties (Amazon 彈性網路轉接器屬性) 視窗的 General (常規) 索引標籤顯示「This device is working properly (此裝置工作正常)。」

調查驅動程式事件訊息

若要使用 Windows 事件檢視器檢視 ENA Windows 驅動程式事件日誌,請按照下列步驟操作:

  1. 使用上一部分中描述的其中一種方法開啟 Run (執行) 對話方塊。

  2. 若要開啟 Windows 事件檢視器,請在 Run (執行) 對話方塊中輸入 eventvwr.msc

  3. 選擇 OK (確定)。Event Viewer (事件檢視器) 視窗隨即開啟。

  4. 展開 Windows Logs (Windows 日誌) 功能表,然後選擇 System (系統)。

  5. 在右上方面板中的 Action (動作) 下,選擇 Filter Current Log (篩選當前日誌)。此時將顯示篩選對話方塊。

  6. Event sources (事件來源) 方塊中,輸入 ena。這會將結果限製為由 ENA Windows 驅動程式產生的事件。

  7. 選擇 OK (確定)。此時將在視窗的詳細資訊部分顯示篩選的事件日誌結果。

  8. 要深入查看詳細資訊,請從清單中選擇一條事件訊息。

下面的範例顯示了 Windows 事件檢視器系統事件清單中的 ENA 驅動程式事件:


					範例:在 Windows 事件檢視器系統訊息清單中顯示的 ENA 驅動程式事件。

事件訊息摘要

如下資料表顯示了 ENA Windows 驅動程式產生的事件訊息。

Input
事件 ID ENA 驅動程式事件描述 類型
5001 硬體資源不足 錯誤
5002 轉接器偵測到硬體錯誤 錯誤
5005 對於未及時完成的 NDIS 操作,轉接器存在逾時 錯誤
5032 轉接器未能重設裝置 錯誤
5200 已初始化轉接器 資訊
5201 已停止轉接器 資訊
5202 已暫停轉接器 資訊
5203 已重新啟動轉接器 資訊
5204 已關閉轉接器 資訊
5205 已重設轉接器 錯誤
5206 已意外刪除轉接器 錯誤
5208 轉接器初始化常式失敗 錯誤
5210 轉接器遇到內部問題並已成功恢復 錯誤

檢閱效能指標

ENA Windows 驅動程式會從啟用其的執行個體發佈網路效能指標。您可以使用本機效能監控應用程式檢視和啟用執行個體上的指標。如需 ENA Windows 驅動程式所產生指標的詳細資訊,請參閱 監控 EC2 執行個體的網路效能

在啟用 ENA 指標且安裝 Amazon CloudWatch 代理程式的執行個體上,CloudWatch 會收集與 Windows 效能監控中的計數器關聯的指標以及一些適用於 ENA 的進階指標。除了在 EC2 執行個體上預設啟用的指標以外,還會收集以下這些指標。如需這些指標的詳細資訊,請參閱 Amazon CloudWatch 使用者指南中的 CloudWatch 代理程式收集的指標

注意

效能指標在 ENA Windows 驅動程式 2.2.4 版中無法正常運作。已排程在下一個版本的驅動程式中修正此問題。若要確保發佈效能指標,請立即使用版本 2.2.3。

使用效能指標的一些方式包括:

  • 對執行個體效能問題執行故障診斷。

  • 為工作負載選擇合適的執行個體大小。

  • 主動規劃擴展活動。

  • 基準化應用程式,以確定它們是否最大限度地提高了執行個體上可用的效能。

重新整理速率

根據預設,驅動程式使用 1 秒的間隔重新整理指標。但是,擷取指標的應用程式可能會使用不同的間隔進行輪詢。您可以使用驅動程式的進階屬性,在 Device Manager (裝置管理員)中變更重新整理間隔。

若要變更 ENA Windows 驅動程式的指標重新整理間隔,請按照下列步驟操作:

  1. 使用上一部分中描述的其中一種方法開啟 Run (執行) 對話方塊。

  2. 若要開啟 Windows Device Manager (裝置管理員),請在 Run (執行) 對話方塊中輸入 devmgmt.msc

  3. 選擇 OK (確定)。這將開啟 Device Manager (裝置管理員) 視窗。

  4. 選取 Network adapters (網路轉接器) 左側的箭頭以展開清單。

  5. 開啟 Amazon Elastic Network Adapter (Amazon 彈性網路轉接器) 的內容功能表,然後選擇 Properties (屬性)。

  6. 在彈出式視窗中開啟 Advanced (進階) 索引標籤。

  7. Property (屬性) 清單中,選擇 Metrics Refresh Interval (指標重新整理間隔) 以變更值。

  8. 完成後,選擇 OK (確定)。

ENA 轉接器重設

當 ENA Windows 驅動程式偵測到轉接器上的錯誤並將轉接器標記為運作狀態不良時,重設程序就會啟動。驅動程式無法自行重設,因此它依賴於作業系統來檢查轉接器的運作狀態,並叫用 ENA Windows 驅動程式的重設處理常式。重設程序可能會導致短時間內出現流量遺失。但是,TCP 連接應該能夠復原。

ENA 轉接器也可能透過傳送保持有效通知失敗而間接請求裝置重設程序。例如,如果 ENA 轉接器在載入不可恢復的組態之後達到未知狀態,它可能會停止傳送保持有效通知。

ENA 轉接器重設的常見原因

  • 缺少保持有效訊息

    ENA 轉接器以固定速率張貼保持有效事件 (通常每秒一次)。ENA Windows 驅動程式實作監視程式機制,該機制會檢查這些保持有效訊息的存在。如果自上次檢查以來偵測到一條或多條新訊息,它就會記錄成功結果。否則,驅動程式得出裝置出現故障的結論,並啟動重設序列。

  • 封包卡在傳輸佇列中

    ENA 轉接器驗證封包是否按預期方式通過傳輸佇列。ENA Windows 驅動程式偵測封包是否卡住,如果已卡住,則啟動重設序列。

  • 記憶體映射 I/O (MMIO) 暫存器的讀取逾時

    若要限制記憶體映射 I/O (MMIO) 讀取操作,ENA Windows 驅動程式僅在初始化和重設過程中存取 MMIO 暫存器。如果驅動程式偵測到逾時,它將執行以下動作之一,具體取決於正在執行的程序:

    • 如果在初始化過程中偵測到逾時,它會讓流程失敗,從而導致驅動程式在 Windows Device Manager (裝置管理員) 中的 ENA 轉接器上顯示黃色的驚歎號。

    • 如果在重設過程中偵測到逾時,則會讓流程失敗。然後,作業系統會啟動 ENA 轉接器的意外刪除,同時透過停止並啟動已刪除的轉接器來進行復原。有關意外刪除網路界面卡 (NIC) 的詳細資訊,請參閱 Microsoft Windows 硬體開發人員文件中的處 NIC 的意外刪除

故障診斷方案

下列方案可以幫助您對 ENA Windows 驅動程式可能發生的問題進行故障診斷:如果您沒有最新版本,我們建議您從升級 ENA 驅動程式開始操作。若要查找 Windows 作業系統版本的最新驅動程式,請參閱 Amazon ENA 驅動程式版本

描述

Device Manager (裝置管理員) 的 Network adapters (網路轉接器) 部分中的 ENA 轉接器圖示顯示一個警告符號 (內部帶有驚歎號的黃色三角形)。

下面的範例顯示了在 Windows Device Manager (裝置管理員) 中帶有警告圖示的 ENA 轉接器:


							範例:在 Windows Device Manager (裝置管理員)中帶有警告圖示的 ENA 轉接器。

原因

此裝置警告通常由環境問題引起,此問題可能需要進行更多的研究,並且通常需要執行消除程序來確定根本原因。如需裝置錯誤的完整清單,請參閱 Microsoft Windows 硬體開發人員文件中的 Device Manager (裝置管理員) 錯誤訊息

解決方案

此裝置警告的解決方案取決於根本原因。此處介紹的消除程序包括幾個基本步驟,用於幫助確定和解決可能具有簡單解決方案的最常見問題。如果這些步驟無法解決問題,則需要進行其他根本原因分析。

請按照以下步驟幫助確定和解決常見問題:

  1. 停止並啟動裝置。

    開啟 Device Manager (裝置管理員) 屬性視窗,如 檢查 ENA 裝置狀態 部分中所述。這將開啟 Amazon Elastic Network Adapter Properties (Amazon 彈性網路轉接器屬性) 視窗中的 General (常規) 索引標籤,其中 Device status (裝置狀態) 顯示錯誤代碼和一條簡短訊息。

    1. 開啟 Driver (驅動程式) 索引標籤。

    2. 選擇 Disable Device (停用裝置),在顯示的警告訊息中回應 Yes (是)。

    3. 選擇 Enable Device (啟用裝置)。

  2. 停止並啟動 EC2 執行個體

    如果轉接器仍在 Device Manager (裝置管理員) 中顯示警告圖示,則下一步是停止並啟動 EC2 執行個體。在大多數情況下,這會在不同硬體上重新啟動執行個體。

  3. 調查可能的執行個體資源問題

    如果您已停止並啟動 EC2 執行個體,但問題仍然存在,這可能表明您的執行個體存在資源問題,例如記憶體不足。

描述

Windows 事件檢視器顯示 ENA 轉接器的適配器逾時以及結合其發生的事件。消息類似以下範例:

  • 事件 ID 5007:Amazon 彈性網路轉接器:操作過程中逾時。

  • 事件 ID 5205:Amazon 彈性網路轉接器:轉接器重設已啟動。

轉接器重設會導致最小規模的流量中斷。即使執行多個重設,它們也很少會導致任何嚴重的網路中斷。

原因

此事件序列表示 ENA Windows 驅動程式為無回應的 ENA 轉接器啟動了重設。但是,裝置驅動程式用於偵測此問題的機制受到 CPU 0 不足導致的誤報約束。

解決方案

如果這種錯誤組合頻繁發生,請檢查您的資源分配,以了解調整可能發揮作用的位置。

  1. 使用上一部分中描述的其中一種方法開啟 Run (執行) 對話方塊。

  2. 若要開啟 Windows Resource Monitor (資源監視器),請在 Run (執行) 對話方塊中輸入 resmon

  3. 選擇 OK (確定)。這將開啟 Resource Monitor (資源監視器) 視窗。

  4. 開啟 CPU 索引標籤。每個 CPU 的用量圖表顯示在 Resource Monitor (資源監視器) 視窗的右側。

  5. 檢查 CPU 0 的用量級別,了解它們是否太高。

我們建議您設定 RSS 以排除較大執行個體類型 (超過 16 個 vCPU) 上適用於 ENA 轉接器的 CPU 0。對於較小的執行個體類型,設定 RSS 可能會改善體驗,但由於可用核心數量較少,因此必須進行測試,以確保限制 CPU 核心不會對效能產生負面影響。

使用 Set-NetAdapterRss 命令為 ENA 轉接器設定 RSS,如下列範例所示。

Set-NetAdapterRss -name (Get-NetAdapter | Where-Object {$_.InterfaceDescription -like "*Elastic*"}).Name -Baseprocessorgroup 0 -BaseProcessorNumber 1

描述

如果遷移到第六代 EC2 執行個體,並且您尚未更新 ENA Windows 驅動程式版本,則可能會遇到效能下降或 ENA 配件故障。

原因

Windows 需要驅動程式 2.2.3 版或更新版本。但是,驅動程式 2.2.4 版也可能導致第六代執行個體的效能下降,並已將此版本回復。如需詳細資訊,請參閱 AWS 知識中心中的文章在將 EC2 執行個體遷移至第六代執行個體之前,我需要做些什麼來確保獲得最高網路效能?

解決方案

在升級到第六代 EC2 執行個體之前,請確保用於啟動執行個體的 AMI 具有相容的驅動程式 (2.2.3 或更新版本)。有關確保您具有第六代執行個體所需驅動程式的詳細資訊,請參閱在將 EC2 執行個體遷移到第六代執行個體之前,我需要做些什麼來確保得到最高的網路效能?

注意

驅動程式 2.2.4 版回復

因第六代 EC2 執行個體的潛在效能下降,ENA Windows 驅動程式 2.2.4 版已回復。若已安裝驅動程式 2.2.4 版,我們建議您使用下列其中一個方法,對您的驅動程式進行降級:

  • 安裝舊版

    1. Amazon ENA 驅動程式版本 表格下載舊版套件 (版本 2.2.3)。

    2. 執行 install.ps1 PowerShell 安裝指令碼。

    如需有關安裝前和安裝後步驟的詳情,請參閱 啟用 Windows 上的增強型網路

    使用 Amazon EC2 Systems Manager 進行大量更新

    • 透過 SSM 文件 AWS-ConfigureAWSPackage 執行大量更新,參數如下:

      • 名稱:AwsEnaNetworkDriver

      • 版本:2.2.3

描述

ENA 介面未按預期發揮效能。

原因

效能問題的根本原因分析是一種消除程序。其中涉及太多的變數,無法指定常見原因。

解決方案

根本原因分析的第一步是檢閱未按預期發揮效能的執行個體的診斷資訊,以確定是否存在可能導致問題的錯誤。如需詳細資訊,請參閱 收集有關執行個體的診斷資訊 一節。

為了在執行個體上達到使用增強型聯網的最大網路效能,您可能需要修改預設的作業系統組態。根據預設,某些最佳化 (例如開啟檢查總和卸載和啟用 RSS) 已經在官方 Windows AMI 上設定。有關可套用至 ENA 轉接器的其他最佳化,請參閱 ENA 轉接器效能調整 中所示的效能調整。

我們建議您謹慎行事,並將裝置屬性調整限制為本部分中列出的變更,或限制為 AWS 支援團隊建議的特定變更。

若要變更 ENA 轉接器屬性,請按照下列步驟操作:

  1. 使用上一部分中描述的其中一種方法開啟 Run (執行) 對話方塊。

  2. 若要開啟 Windows Device Manager (裝置管理員),請在 Run (執行) 對話方塊中輸入 devmgmt.msc

  3. 選擇 OK (確定)。這將開啟 Device Manager (裝置管理員) 視窗。

  4. 選取 Network adapters (網路轉接器) 左側的箭頭以展開清單。

  5. 選取名稱,或開啟 Amazon Elastic Network Adapter (Amazon 彈性網路轉接器) 的內容功能表,然後選擇 Properties (屬性)。

  6. Amazon Elastic Network Adapter Properties (Amazon 彈性網路轉接器屬性) 視窗中開啟 Advanced (進階) 索引標籤。

  7. 選擇您要變更的屬性。完成後,請選擇 OK (確定) 以儲存變更。

下面的範例顯示了 Windows Device Manager (裝置管理員) 中的 ENA 轉接器屬性:


							範例:Windows Device Manager (裝置管理員) 中顯示的 ENA 轉接器屬性。
ENA 轉接器效能調整

下表包含可調整以提高 ENA 介面效能的屬性。

Input
屬性 描述 預設值 調整

接收緩衝區

控制軟體接收佇列中的項目數目。

1024

可提高至上限 8192。

接收端調整 (RSS)

支援在多處理器系統中跨多個 CPU 高效分配網路接收處理。

已啟用

您可以將負載分散到多個處理器中。如需進一步了解,請參閱 作業系統最佳化

最大 RSS 佇列數

設定在 RSS 已啟用時允許的 RSS 佇列數上限。

32

RSS 佇列的數量是在驅動程式初始化過程中確定的,其包括以下限制 (除其他限制外):

  • 由此屬性設定的 RSS 佇列限制

  • 執行個體限制 (vCPU 計數)

  • 硬體世代限制 (ENAv1 中最多 8 個 RSS 佇列,ENAv2 中最多 32 個 RSS 佇列)

根據執行個體和硬體世代限制,您可以設定 1-32 的值。如需進一步了解,請參閱 作業系統最佳化

巨型封包

允許使用巨型乙太網路訊框 (超過 1500 個位元組的承載)。

已停用 (這將承載限制為 1500 個位元組或更少)

值可以設定為最高 9015,即轉換為 9001 個位元組的承載。這是巨型乙太網路訊框的最大承載。請參閱使用巨型乙太網路訊框的考量事項

使用巨型乙太網路訊框的考量事項

巨型訊框可增加單一封包的承載大小,這會增加不屬於封包成本的封包比例,藉此允許超過 1500 位元組的資料。傳送相同數量的可用資料,所需的封包數即會減少。但是,在下列情況下,流量限制為 MTU 最大為 1500:

  • EC2 Classic 的指定 AWS 區域外的流量。

  • 單一 VPC 外的流量。

  • 跨區域 VPC 對等互連的流量。

  • VPN 連線的流量。

  • 網際網路閘道的流量。

注意

超過 1500 個位元組的封包會分段。如果 IP 標頭設有 Don't Fragment 旗標,這些封包將被捨棄。

巨型訊框應謹慎用於進出網路的流量,或任何離開 VPC 的流量。封包由中介系統切割,因此拖累流量速度。要在 VPC 內使用巨型訊框而不影響離開 VPC 的傳出流量,請嘗試以下選項之一:

  • 按路由設定 MTU 大小。

  • 使用具有不同 MTU 大小和不同路由的多個網路介面。

巨型訊框的建議使用案例

巨型訊框對於 VPC 內部和之間的流量非常有用。我們建議在以下使用案例中使用巨型訊框:

  • 以配置於叢集置放群組內的執行個體而言,巨型訊框有助實現最大網路傳輸量。如需詳細資訊,請參閱 置放群組

  • 您可以針對透過 AWS Direct Connect 的 VPC 和現場部署網路之間的流量,使用 Jumbo Frame。如需使用 AWS Direct Connect 和驗證巨型訊框功能的更多資訊,請參閱 AWS Direct Connect 使用者指南為私有虛擬界面或傳輸虛擬界面設定網路 MTU

  • 如需傳輸閘道的支援 MTU 大小的詳細資訊,請參閱 Amazon VPC 傳輸閘道中的傳輸閘道的配額