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