章 6. 網路功能

網路功能子系統是由數個不同,且具有感應式連接的組件組成。Red Hat Enterprise Linux 7 網路功能的設計,是為最佳化大部份工作負載的效能和自動最佳化其效能。因此,網路效能並不一定需要手動微調。 本章節討論更多可以新增至功能性網路功能系統的最佳化。
有時,網路效能問題是硬體功能故障或基礎構造故障的結果。解決這些問題已超出本文討論的範圍。

6.1. 考量

為作出好的微調決定,您需要對 Red Hat Enterprise Linux 中的封包收發有全面的了解。本章節解釋網路封包如何被接收和產生,和潛在瓶頸可能發生的時候。
傳送至 Red Hat Enterprise Linux 系統的 packet 是由網路介面卡(NIC)接收,並置於內部硬體緩衝區或環形緩衝區。NIC 隨後傳送一硬體中斷請求,並提示軟體中斷運作的產生,以處理中斷請求。
身為軟體中斷運作的一部分,packet 是從緩衝區轉送至網路堆。根據 packet 和您網路的設定,packet 隨後會為應用程式而被轉寄、捨棄或傳遞至一 socket 接收佇列,或者從網路堆移除。此程序將會持續,直至 NIC 硬體緩衝區中沒有 packet,或者一定數量的被轉移 packet(指定於 /proc/sys/net/core/dev_weight)。

6.1.1. 在您微調之前

網路效能問題大多為硬體故障或基礎架構故障的結果。Red Hat 強烈建議在開始微調網路堆疊前,確認硬體和基礎架構皆如預期運作。

6.1.2. packet reception 中的瓶頸

雖然網路堆大多是自動最佳化, 但處理網路封包時有一些點將成為瓶頸並降低效能。
NIC 硬體緩衝區或環形緩衝區
若大量封包被卸除則硬體緩衝區可能成為瓶頸。更多有關監控您的系統所卸除的封包,請參閱〈節 6.2.4, “ethtool”〉。
硬體或軟體中斷佇列
中斷延遲延長且增加處理器爭用。更多有關處理器如何處理中斷的資訊,請參閱〈節 3.1.3, “IRQ 處理”〉。更多資訊關於如何於系統中監控中斷處理,請參閱〈節 3.2.3, “/proc/interrupts”〉。有關影響中斷處理的設定選項,請參閱〈節 3.3.7, “設定插斷親和性”〉。
應用程式的通訊端接收佇列
應用程式接收列佇列中的瓶頸是由大量的 packet 指出。這些 packet 並不會被複製至要求的應用程式,或透過增加/proc/net/snmp 中的 UDP 輸入錯誤(InErrors)。更多有關監控您系統上的這些錯誤,請參閱〈節 6.2.1, “ss”〉和〈 節 6.2.5, “/proc/net/snmp”〉。