伺服器 2008 到 2003 使用 cifs 進行緩慢的檔案傳輸

伺服器 2008 到 2003 使用 cifs 進行緩慢的檔案傳輸

我剛剛嘗試透過 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)。

我嘗試過的一些事情......

  • autotuninglevel=disabled按照上面的建議設置
  • 停用 SMB 2,如所述這裡
  • 調整適配器雙工和流量控制設置,主要基於這個帖子但在很多地方都建議

這些都沒有任何(正面)效果。

對我來說,解決方案是停用 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

相關內容