調整VMware網絡設置解決虛擬機丟包問題
TechTarget中國 發(fā)表于:13年05月27日 11:12 [轉載] TT中國
即使是設計良好的VMware網絡也會遇到虛擬化帶來的一些問題,例如虛擬機的數據包丟失嚴重。適當地調整VMware網絡設置可以在不改變子OS的前提下解決數據包丟失率高的問題。
正常的網絡連接中很少會出現多個包丟失的現象,每成功接收或轉發(fā)100,000個數據包最多只會有幾個包丟失(如圖1)。在Linux虛擬機中,通過ifconfig命令可以很輕松地監(jiān)控到這種狀態(tài)。
通常以太網卡是不會丟包的
當虛擬機的網絡在突發(fā)大量訪問的情況下,可能會發(fā)生多個包丟失,這樣就需要調整虛擬機的網絡設置。首先,確認虛擬機使用了VMXNET3虛擬網卡驅動。這樣,在Linux宿主機的特定情況下,當大數據文件在高帶寬的網絡上傳輸時會發(fā)生多數據包丟失。關閉接收和轉發(fā)校驗總和可以解決這種情況。因為校驗總和的作用是停止錯誤包的發(fā)送,這樣做會增加風險?紤]到以太網卡的錯誤率通常低于百萬分之一,風險的級別并不高。
使用Linux ethtool工具來關閉VMware網絡設置中的接收和轉發(fā)校驗總和,在命令行窗口中以root賬戶登錄ethtool。例如關閉網卡eth0的校驗總和命令如下:readethtool --offload eth0 rx off tx off;
命令生效后,打開相應網卡的配置文件:
/etc/sysconfig/network/ifcfg-eth0 ( SUSE) 或 /etc/sysconfig/network-scripts/ifcfg-eth0 (Red Hat )
同時把ETHTOOL_OPTIONS參數變?yōu)镋THTOOL_OPTIONS='--offload eth0 rx off tx off'
如果依然存在丟包問題,嘗試用ethtool工具增加接收隊列的緩沖區(qū)大小。默認情況下,緩存設為256,可以設置的最大值為4096。重新設置緩存大小為512,使用命令ethtool -G eth0 512。如果結果不理想,嘗試更大的值。
遇到Windows虛擬機的高丟包率就需要調整VMXNET3驅動的網絡設置。在Device Manager中右鍵單擊VMXNET3驅動并選擇Properties。在Advanced頁中有兩個參數:Small RX Buffers和RX Ring #1 Size。適當增加這些參數的值然后測試能否有改善。逐步加大該值直到問題解決。
多數情況下,這些設置可以降低虛擬機的丟包率。如果調整網絡參數失敗,或許就需要解決虛擬機其它的一些性能相關問題,而不是虛擬機和ESXi平臺之間的VMware網絡設置。咨詢宿主機OS 的相關專家,應該有很多可以調整性能的相關參數。當心更改了錯誤的參數可能會對虛擬機帶來明顯的負面影響。