天天看點

Linux測試lacp,linux – 鍊路聚合(LACP / 802.3ad)最大吞吐量

我在

Linux下看到一些關于綁定接口的令人困惑的行為,我想把這種情況抛到那裡,希望有人可以為我清理它.

我有兩台伺服器:伺服器1(S1)有4x 1Gbit以太網連接配接;伺服器2(S2)具有2x 1Gbit以太網連接配接.兩台伺服器都在運作Ubuntu 12.04,雖然核心是3.11.0-15(來自lts-saucy linux-generic軟體包).

兩台伺服器都将所有各自的網絡接口捆綁到一個bond0接口中,具有以下配置(在/ etc / network / interfaces中):

bond-mode 802.3ad

bond-miimon 100

bond-lacp-rate fast

bond-slaves eth0 eth1 [eth2 eth3]

在伺服器之間有幾個HP交換機(我認為)正确配置了相關端口上的LACP.

現在,連結正在運作 – 網絡流量快樂地流入和流出兩台機器.并且正在使用所有相應的接口,是以它不像聚合完全失敗.但是,我需要在這兩個伺服器之間盡可能多的帶寬,而且我沒有達到我期望的~2Gbit / s.

在我的測試中,我可以觀察到每個伺服器似乎将每個TCP連接配接(例如iperf,scp,nfs等)配置設定給單個從屬接口.基本上一切似乎都限制在最大1千兆位.

通過設定bond-xmit-hash-policy layer3 4,我可以使用iperf -c S1 -P2在兩個從接口上發送,但在伺服器端,接收仍然隻發生在一個從接口上,是以總吞吐量受到限制在1Gbit / s時,即用戶端在兩個從接口上顯示~40-50MB / s,伺服器在一個從接口上顯示~100MB / s.如果不設定bond-xmit-hash-policy,則發送也僅限于一個從接口.

我的印象是LACP應該允許這種連接配接捆綁,例如,允許單個scp傳輸來利用兩個主機之間的所有可用接口.

我對LACP的了解是錯誤的嗎?或者我錯過了某些配置選項?任何建議或調查線索将不勝感激!