我剛剛嘗試透過 cifs(Windows 文件共享)在伺服器 2003 R2 和新伺服器 2008 SP1 之間複製文件,但速度很糟糕。
這是一個 300MB 的文件,傳輸大約需要 30 分鐘。我的速度約為 1-2Mbit/s,這是在本地交換器上。
我嘗試從兩台伺服器啟動傳輸,但結果相同。
從 2003 複製到另一個 2003 不到 1 分鐘,所以這顯然是 2008 伺服器的問題。
更奇怪的行為是,如果我同時將另一個檔案從 2003 伺服器複製到另一個 2003 伺服器,2008 伺服器的傳輸速率會急劇增加(大約是 10 倍,但仍然很慢)。
透過 RDP 驅動器共享,我可以獲得全 VPN 速度,大約 20Mbit。似乎沒有其他服務受到任何延遲的影響。
我看到關於tcp卸載在win2008中造成問題的帖子,可能有關係嗎?
答案1
確保 2008 伺服器能夠自行正常運作。嘗試在它和另一台 2008 伺服器之間傳輸文件,或者如果一個 Vista 工作站不可用,它們會使用相同的 cifs 版本。
當 NIC 和交換器之間存在速度/雙工不匹配時,我看到過類似的文件傳輸行為,有時是因為自動感應問題,有時是因為其中之一或兩者的配置錯誤。
答案2
您可以嘗試關閉 TCP 自動調整:
netsh interface tcp set global autotuninglevel=disabled
如果這不起作用,請使用以下命令重新打開它:
netsh interface tcp set global autotuninglevel=normal
TCP 自動調整是 Vista 和 Windows 2008 TCP/IP 堆疊中的一項新功能。您可以透過 TCP/IP 發送的資料量取決於(除其他因素外)接收視窗大小的大小。在先前版本的 Windows 中,接收視窗大小的上限為 64KB。透過自動調整,視窗大小會根據連線的容量和速度動態變更。這個想法是這將加快資料傳輸速度。
問題是,如果客戶端作業系統或網路硬體不正確支援此功能(如 RFC 1323「高效能 TCP 擴充」所述),則此功能實際上可能會導致傳輸速率變慢。
無論如何,這可能不是這裡的問題,但值得一試。
答案3
我剛剛在我的網路上解決了與此類似的問題。一台 Windows 2003 Server 機器正在獲取糟糕的(~20Kb/s) 在新的 Windows 2008 R2 機器上從共享讀取速度(但奇怪的是,2003 >> 2008 很好,~50+Mb/s)。
我嘗試過的一些事情......
這些都沒有任何(正面)效果。
對我來說,解決方案是停用 TCP 卸載(描述這裡)透過新增以下註冊表項...
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
Value = DisableTaskOffload
Type = DWORD
Data = 1
Value = EnableTCPChimney
Type = DWORD
Data = 0
Value = EnableTCPA
Type = DWORD
Data = 0
Value = EnableRSS
Type = DWORD
Data = 0
重新啟動後,所有傳輸都達到了速度。
根據我對這個問題的(有限)理解,它只發生在運行 2008 或 Win 7 的機器中與運行 2003 或 XP 的機器通信的某些 NIC 型號(挖掘 Intel 82578DC)。就我而言,2003 機器是在 VMware Server 2.0.2 上執行的虛擬機器(但我不知道這是否相關)。
希望對某人有幫助!
答案4
我的第一個猜測是硬體問題。嘗試使用 FTP 或 HTTP 傳輸文件,看看是否也很慢。
JR