解決HyperV R2網絡掉線問題

原帖地址:http://www.cnblogs.com/GSonOVB/archive/2009/11/12/1601435.html

最近把家裏的硬件更新了,換用了2008R2。湊巧今天須要在公司裏遠程連過來,感受很是的卡,頻繁掉線,而網絡狀康是很好的,不至於如此。回到家裏,用另外一臺機器鏈接遠程桌面一樣存在問題,基本上只要一有動做就掉包。關掉關聯的虛擬網卡則一切正常,懷疑是HyperV的虛擬網卡形成,上Google搜了一下,就有了下文,不過我和原做者不一樣,我必須修改虛擬網卡的配置禁用IPV4檢查才見效

雖然升級到WIn2008R2有一段時間了, 但沒有感受到什麼網絡問題。
直到最近,我在局域網的另外一個機器,經過FTP從主機上下載一些程序等等。
由於日常都是在虛機裏面,沒有注意這個。
結果今天一用,發現 從內網下載的速度,竟然只有700KB/S左右, 最高沒有超過1M/S (IE下載的,用其餘工具稍微快點,大概2~3M/S 左右)。
 
唉。這速度怎麼說呢? 個人內網好賴也是100M的,這麼慢的話,下載什麼都不爽了。
(唉,要是要部署30G VHD文件,我給下載到何時去呢)
最初實際上覺得是網絡問題,但後來,我直接把 兩個機器直接用網線鏈接到 一塊兒(沒有交換機OR路由)
速度也是上不去,唉,問題是我本機。
 
但由於個人主板是 雙網卡的,用另外一個網絡口,進行下載,速度輕鬆的上去了。
分以了一下2個藉口的區別,想起來了, 其中 下載慢的那個接口 安裝 虛機的虛擬網卡的共享驅動。
爲了證實這個, 我直接把虛擬網卡刪了,來測試。
恩,速度是日新月異了。(惋惜,以後 還給爲每一個虛機從新分配新的網卡,由於新的網卡GUID不一樣。唉。)
在網上 Google了一下,終於,在 英文MSDN社區上找到了答案。
 
唉, 簡單來講,是 Hyper-V R2 改進 惹得禍。
R2中新增了一個 VM Chimney 功能,主要做用是 將 虛擬網卡 的處理工做 轉交給 物理網卡,來提升速度,下降CPU使用。 但這個功能 是須要硬件支持的,所以默認是禁用的。
也許是MS後期經過更新,而開啓這個功能,仍是由於其餘緣由等。這個被啓動了。
而後,網絡就。。。
解決方式是將 物理網卡的 IPv4 硬件校驗和(Checksum ) 關閉掉( 當讓,根據原文,改爲 Rx 應該也能夠,不過我沒有測試。)
不過虛擬網卡的 關不關閉好像都不會有多少影響。 建議本身嘗試一下。
下圖是 物理網卡的, 區分方法是,這個網卡沒有IP,屬性裏面,只選了虛機共享。
clip_p_w_picpath001
clip_p_w_picpath002
 
這個是虛擬網卡的。
clip_p_w_picpath003
 
禁用了以後,FTP速度就上去了
clip_p_w_picpath004
(Win7以後多的東西,很好的工具,能夠看到,基本 達到90% 的帶寬了,考慮到 交換機或者路由的性能,以及冗餘等,這個已經不錯了。)
 
若是要使用註冊表方式的來更改的話,能夠參考這裏 http://msdn.microsoft.com/en-us/library/aa938424.aspx
 
最後,找了一下 Rx Tx 的做用。
若是網卡支持,在高級選項裏能夠設置Checksum Offload是否對Rx或Tx有效,也能夠設置爲對二者都有效。
對於Tx,設置Checksum Offload有效以後,Windows的傳輸層將隨機填充TCP校驗和,所以在本機上抓取的數據包是Bad CheckSum。而後,網卡會自動計算正確的校驗碼而後發送,所以對方收到的仍然是正確的TCP包。
對於Rx,設置Checksum Offload有效以後,網卡在接收數據時,會填充一個NDIS_TCP_IP_CHECKSUM_PACKET_INFO 結構並設置標誌位;若是因爲某種緣由失敗,則不設置標誌位,由Windows裏的TCP/IP協議棧來完成數據校驗。
CheckSum Offload其實是將傳輸層的一部分工做交給了硬件完成,以節約系統的CPU資源。微軟的測試代表它能夠最多節約30%的CPU資源。 IBM裏AIX的文檔則指出:對於PCI接口的千兆網卡來講還不如讓400Mhz以上的CPU來計算校驗和,而PCI-X的千兆網卡啓用此項後能夠達到線路速度,從而節約CPU資源。
相關文章
相關標籤/搜索