1. 程式人生 > 實用技巧 >E1000、E1000E和VMXNET3虛擬網絡卡對比測試

E1000、E1000E和VMXNET3虛擬網絡卡對比測試

VMware管理員可以使用幾個不同的虛擬網路介面卡來附加到虛擬機器。虛擬介面卡屬於以下兩個組之一:

模擬:

這些是虛擬硬體,可以模擬實際的現有物理網路介面卡。(請注意,物理ESXi主機中的物理網絡卡是完全無關的。)VMkernel將向來賓作業系統提供某些內容,看起來與某些特定的實際硬體完全相同,並且來賓可以通過即插即用來檢測它們並使用本機裝置驅動程式。

模擬裝置的示例包括:

E1000將模擬1 GbitIntel 82545EM卡,自Windows Server 2003生成以來,適用於大多數作業系統。該卡是建立幾乎所有虛擬機器時的預設設定,並且被廣泛使用。

E1000E模擬更新的真實網路介面卡1 Gbit Intel 82574

,適用於Windows 2012及更高版本。E1000E需要VM硬體版本8或更高版本。

上面在帶有模擬E1000介面卡的Windows 2008 R2中,正在使用本機來賓作業系統裝置驅動程式。

模擬網路介面卡的積極方面是它們開箱即用,不需要VMware的外部程式碼。由於E1000裝置已在BIOS啟動時可用,因此它甚至可以用於(如果需要)通過PXE安裝來賓作業系統。

不利的一面是,使用預設的模擬介面卡時,從來賓作業系統傳送或接收的每個幀都需要額外的工作(每秒可能成千上萬個)。
VMkernel必須實時模擬特定Intel 82545EM82574卡的確切行為,這將花費時間和CPU週期。

半虛擬化:

虛擬網路介面卡的另一種型別是

半虛擬化。最近的一個稱為VMXNET3

半虛擬化網絡卡不作為物理NIC存在,而是完全由VMware“組成的裝置。對於來賓作業系統,這將意味著它通常在OS安裝階段僅感覺到未知裝置位於(虛擬)母板上的PCI插槽中,但沒有驅動程式可以實際使用它。

(注意:某些Linux發行版甚至預安裝了VMXNET3驅動程式。)

對於Windows Server,通常通過安裝VMware Tools來提供裝置驅動程式時,來賓作業系統會將其視為來自某些網絡卡製造商稱為“ VMware”的真實NIC,並將其用作普通網路介面卡。除了周圍的其他NIC之外,沒有其他理由相信這是NIC

對於來賓作業系統,VMXNET3

卡看起來像10 Gbit的物理裝置。

注意:還有兩個過時的半虛擬化介面卡,稱為VMXNETVMXNET2(有時稱為增強型VMXNET”),但是,只要虛擬機器至少具有硬體版本7,則應僅使用VMXNET3介面卡。

由於帶有VMXNET3卡的VMware甚至在VM內部擁有更多的網路元件,因此可以實現許多效能增強。使用模擬的E1000 / E1000E,核心必須模擬現有的來賓系統介面卡的確切行為,但是使用VMXNET3,它可以建立經過優化以在虛擬環境中使用的完美虛擬介面卡。

下面,我們將測試當今兩個最常見的Windows作業系統:Windows 2008 R2Windows 2012 R2的網路吞吐量,並檢視VMXNET3E1000E1000E的效能

為了生成大量網路流量,我使用了在兩個虛擬機器上執行的iperf工具,一個虛擬機器為客戶端,另一個為伺服器。我發現以下iperf設定為Windows Server上的網路吞吐量測試生成了最佳組合:

伺服器:iperf -s -w 64k -l 128k

客戶端:iperf -c <伺服器IP> -P 16 -w 64k -l 128k -t 30

該測試是在HP Proliant Bl460c Gen8上完成的,虛擬機器在同一物理主機上執行,​​無論物理主機/刀片之間的物理網路連線如何,都可以檢視網路效能。

E1000E1000EVMXNET3上的所有設定均為預設設定。有關VMXNET3卡設定可能進行的調整的更多資訊,將在後面的文章中介紹。

(當然,請注意,以下結果僅是對一種特定硬體和ESXi配置進行測試所得的觀察結果,絕不是科學研究。)

測試1:使用預設E1000介面卡的Windows 2008 R2

兩臺Windows 2008 R2虛擬機器,一臺作為iperf伺服器,另一臺作為客戶端,測試執行時間為30秒。

如工作管理員檢視中所述,1 Gbit連結速度已最大化。一個有點有趣的事實是,即使使用模擬的E1000介面卡,也可以使用比1 Gbit鏈路應有更多的使用量。

iperf客戶端輸出中,我們可以看到,使用預設的E1000虛擬介面卡,我們的總吞吐量為每秒2.65 Gbit

測試2:帶有VMXNET3介面卡的Windows 2008 R2

工作管理員檢視報告Iperf客戶端VM10 Gbit連結的利用率約為39%。

在執行測試的過程中,iperf輸出顯示VMXNET3的總吞吐量為4.47 Gbit /秒。

Windows 2008 R2上的E1000卡相比,VMXNET3介面卡的網路吞吐量提高了70

測試3:帶有E1000E介面卡的Windows 2012 R2

E1000E是一個較新的,更加增強E1000版本。對於來賓作業系統,它看起來像物理介面卡Intel 82547網路介面卡。

然而,即使它是一個較新的介面卡,它沒有實際提供更低E1000介面卡的吞吐量。

兩個執行Windows 2012 R2虛擬機器,其中iperf工具作為客戶端和伺服器執行。

E1000E的速度為1.88 Gbit / s,大大低於Windows 2008 R2上原始E10002.65 Gbit / s

測試4:帶有VMXNET3介面卡的Windows 2012 R2

現在執行VMXNET3介面卡的兩個Windows 2012 R2虛擬機器獲得以下iperf結果:

吞吐量為4.66 Gbit / sec,非常接近Windows 2008 R2上的VMXNET3的結果,但比新的E1000E高出近150

總之,與E1000E1000E相比,VMXNET3介面卡可提供更高的網路吞吐效能。另外,至少在此測試設定中,較新的E1000E的效能實際上要比較舊的E1000差。

該測試是在Windows Server虛擬機器上完成的,VMXNET3介面卡的最高吞吐量約為4.6 Gbit / sec,這可能是TCP實施受到限制的結果。具有其他TCP堆疊的其他作業系統可能會達到更高的數量。還應注意的是,這些測試僅用於網路吞吐量,但是當然還有其他因素,可能會在後面的文章中進一步討論。