共用方式為


接收端調整簡介

接收端調整 (RSS) 是一種網路驅動程式技術,可在多處理器系統中跨多個 CPU 有效率地散發網路接收處理。

注意

因為相同核心處理器上的超執行緒 CPU 會共用相同的執行引擎,所以效果與有多個核心處理器不同。 基於這個理由,RSS 不會使用超執行緒處理器。

為了有效率地處理已接收的資料,迷你埠驅動程式的接收中斷服務函式會排程延遲的程式調用 (DPC) 。 如果沒有 RSS,一般 DPC 表示 DPC 呼叫內的所有已接收資料。 因此,與中斷相關聯的所有接收處理都會在發生接收中斷的 CPU 上執行。 如需非 RSS 接收處理的概觀,請參閱 非 RSS 接收處理

RSS 可讓 NIC 和迷你埠驅動程式排程在其他處理器上接收 DPC。 RSS 設計可確保與指定連線相關聯的處理會保留在指派的 CPU 上。 NIC 會實作雜湊函式,而產生的雜湊值有助於選取 CPU。

下圖說明判斷 CPU 的 RSS 機制。

此圖顯示決定 CPU 之 RSS 機制的程式。

NIC 會使用雜湊函式,在所接收網路資料內的已定義區域 (雜湊類型) 計算雜湊值。 定義的區域可以是不連續的。

雜湊值) (的最小有效位數,可用來編制間接資料表的索引。 間接資料表中的值是用來將接收的資料指派給 CPU。

如需指定間接資料表、雜湊類型和雜湊函式的詳細資訊,請參閱 RSS 組態

透過 (MSI) 支援的訊息訊號中斷,NIC 也可以中斷相關聯的 CPU。 如需 MSI 的 NDIS 支援詳細資訊,請參閱 NDIS MSI-X

RSS 的硬體支援

下圖說明 RSS 的硬體支援層級。

此圖顯示 RSS 的不同硬體支援層級。

RSS 有三種可能的硬體支援層級:

NIC 一律會傳遞 32 位雜湊值。

RSS 如何改善系統效能

RSS 可以藉由減少下列方式來改善網路系統效能:

  • 透過將接收處理從 NIC 分散到多個 CPU,以處理延遲。

    分散式接收處理有助於確保當另一個 CPU 閒置時,不會大量載入任何 CPU。

  • 藉由增加共用資料在相同 CPU 上執行之軟體演算法的機率,來微調鎖定額外負荷。

    例如,當在 CPU0 上執行的函式擁有 CPU1 上執行之函式必須存取的資料微調鎖定時,就會發生微調鎖定額外負荷。 CPU1 會 (等候) ,直到 CPU0 釋放鎖定為止。

  • 藉由增加共用資料在相同 CPU 上執行的軟體演算法機率,以重載快取和其他資源。

    例如,當在 CPU0 上執行和存取共用資料的函式在後續中斷時,會在 CPU1 上執行這類重載。

為了在安全的環境中達成這些效能改善,RSS 提供下列機制:

  • 分散式處理

    RSS 會將來自 DPC 中指定 NIC 的接收指示處理散發至多個 CPU。

  • 連續處理

    RSS 會保留所接收資料封包的行程順序。 針對每個網路連線,RSS 進程會收到相關聯 CPU 的指示。 如需 RSS 接收處理的詳細資訊,請參閱 指出 RSS 接收資料

  • 動態負載平衡

    RSS 提供在主機系統負載時重新平衡 CPU 之間的網路處理負載的方法。 若要重新平衡負載,過度調整驅動程式可以變更間接資料表。 如需指定間接資料表、雜湊類型和雜湊函式的詳細資訊,請參閱 RSS 組態

  • 傳送端調整

    RSS 可讓驅動程式堆疊處理相同 CPU 上指定連線的傳送和接收端資料。 一般而言,過度處理驅動程式 (例如,TCP) 會傳送部分資料區塊,並在傳送資料的餘額之前等候通知。 然後通知會觸發後續的傳送要求。 RSS 間接分析資料表會識別接收資料處理的特定 CPU。 根據預設,如果傳送處理是由接收通知所觸發,則會在相同的 CPU 上執行。 例如,如果) 使用計時器,驅動程式也可以指定 CPU (。

  • 安全雜湊

    RSS 包含提供新增安全性的簽章。 此簽章可保護系統免于惡意遠端主機嘗試強制系統處於不平衡狀態。

  • MSI-X 支援

    RSS 支援 MSI-X,會在稍後執行 DPC 的相同 CPU 上執行插斷服務常式 (ISR) 。 這可減少快取的微調鎖定額外負荷和重載。