如果您將檔案複製到執行 Windows 2000 或 Windows Server 2003 的網域控制站,就會發生網路效能緩慢

文章翻譯 文章翻譯
文章編號: 321098 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

徵狀

如果您將從 Microsoft Windows 2000 用戶端電腦、 Microsoft Windows XP 用戶端電腦或 Microsoft Windows Server 2003 用戶端電腦的檔案複製到執行 Windows 2000 或 Windows Server 2003 的網域控制站上的網路共用時,網路效能會比如果您將相同檔案複製到執行 Windows 2000 的成員伺服器或 Windows Server 2003 更慢。 如果您複製許多小檔案,您可能會注意到這個問題 ; 但是,您可能不會注意到這個問題如果您複製幾個大型檔案。 如果您使用 Microsoft Windows 檔案總管將檔案複製或 Windows 檔案總管視窗是開啟,而且已連線到目標伺服器,只會發生這個問題。 不過,如果您使用 Xcopy.exe 複製檔案,而且所有的 Windows 檔案總管] 視窗會關閉,您不會遇到這個問題。

發生的原因

Windows Server 2003 可能會遇到的檔案副本之間的最多 200 毫秒延遲或因為伺服器訊息區 (SMB) 寫入操作到執行 Windows 2000 的網域控制站,就會發生這個問題。

如果您檢閱問題的追蹤時,您注意到用戶端傳送的伺服器與 FID 項目符合 FID 項目標資料夾的一個 SMB 通知變更 命令之後,會發生延遲。 Windows 檔案總管將張貼在網路上共用的東西變更出現在右窗格的 Windows 檔案總管] 資料夾中如果收到通知會要求通知變更要求。 如果網域控制站收到通知的變更要求,它不會回應它立即 ; 它不會傳送多達 200 毫秒的封包。 在該點傳送簡單的傳輸控制通訊協定 (TCP) 認可 (ACK) 封包,檔案作業繼續照常進行。

這種行為是兩個核心的 Windows 2000 式網路元件之間互動的結果,TCP 延遲 ACK,並在網域控制站上的執行緒優先順序排列。執行緒優先順序排列可讓網域控制站來適當地排列優先順序目錄服務和帳戶管理作業,例如回應通知的變更要求的某些 SMB 活動之前。

解決方案

重要這個區段、 方法或任務包含告訴您如何修改登錄的步驟。然而,如果您不當修改登錄,可能會發生嚴重的問題。因此,執行這些步驟時請務必小心。為加強保護,修改登錄之前,請務必將它備份起來。以後您就可以在發生問題時還原登錄。如需有關如何備份和還原登錄的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
322756如何備份和還原在 Windows 登錄

當您考慮這個問題時,留意只發生在非常特殊的情況下,如果用戶端使用 Windows 檔案總管] 來將大量的檔案複製到 Windows 2000 網域控制站,只會發生這個問題。 如果您變更的延遲的 ACK 計時器值,可以避免某些徵狀的發生,不過,如果您修改核心 TCP/IP 值,您可能會遇到未預期的結果在未來。 因此,Microsoft 建議您考慮其他替代方案,才能修改計時器。 其他解決方案包括到成員伺服器移動檔案共用,或使用其他工具 (例如 Xcopy 或 Robocopy 也就是 Windows 2000 資源工具箱 」 的一部份) 將大量的檔案複製到網域控制站。

您可以在網域控制站上編輯 TcpDelAckTicks 調整 TCP 的登錄值延遲 ACK 計時器。如果您變更 TCP 延遲 ACK 計時器更小的值,則伺服器會傳送 ACK 封包多頻繁,但較短的間隔。

請注意上最高的延遲 [高度飽和區段淨增加 ACK 封包從網域控制站中的將可能會放在網路上的額外負擔。 若要確定變更的 TCP 延遲 ACK 計時器值並不會造成額外的瓶頸,徹底測試值。

如果網路可以處理額外的 ACK 封包,將下列 pre-Service Pack 3 (SP3) Hotfix 套用至 Windows 2000 Service Pack 2 (SP2),如此您可以修改延遲的 ACK 計時器值:

311833TcpDelAckTicks 登錄值具有 ACK 逾時上的沒有效果
套用此 Hotfix 之後,使用下列程序新增下列自訂參數指定的延遲的 ACK 計時器的登錄值:
  1. 啟動 「 登錄編輯程式 」 (Regedt32.exe)。
  2. 找出並按一下下列機碼其中 Adapter GUID 是全域唯一識別項 (GUID) 給用戶端連線的網路介面卡登錄中:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\ Adapter GUID
  3. 在 [編輯] 功能表上按一下 [新增值],並再新增下列登錄值:
    數值名稱: TcpDelAckTicks
    資料型別: REG_DWORD
    值的資料: 您可以將此值設為範圍從 0 到 6。預設值為 2 (200 毫秒為單位)。
  4. 結束 「 登錄編輯程式 」。
  5. 重新啟動 Windows,此變更才會生效。
這個登錄值指定要用於延遲 ACK 計時器每個介面為基礎的 100 毫秒數間隔數。預設情況下,延遲的 ACK 計時器值會為 200 毫秒。如果您將 TcpDelAckTicks 值設為 [0,已停用延遲的認可。 此設定會使電腦立即傳送的每個它接收的封包的 ACK 封包。

附註在每個介面卡的子機碼之下列出配接器特定值。請確定將 TcpDelAckTicks 值加到下列的登錄機碼:
HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\ Adapter GUID
請勿將此值新增至下列登錄機碼:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters

狀況說明

Microsoft 已確認<適用於>一節所列之 Microsoft 產品確實有此問題。

其他相關資訊

在網路追蹤,您可以看到用戶端會傳送 「"SMB: C NT 交易-通知變更 」 封包。Windows 2000 網域控制站會傳回 ACK 封包給用戶端 200 毫秒稍後。用戶端接收 ACK 封包之後用戶端開始下一個 SMB 作業,並會將下一個檔案。

附註如果您正在使用網路監視器,您可以看到更佳的延遲,如果您使用下列篩選條件:
SMB:command = = 0xA0 (NT 交易)
使用此篩選器搭配下列的顯示選項:
時間: (x) 秒從上一個鏡頭
您可以藉由查看下列的 SMB 框架屬性來識別對應的要求和答案:
SMB: Multiplex ID (MID)
延遲應答功能根據要求的註解 (RFC) 1122年。 TCP 會使用延遲的 ACK 減少在網路上傳送的封包數目。Microsoft TCP/IP 堆疊會採取常見的方式來實作延遲的 ACK。當 TCP 收到資料在連線上時,堆疊將只傳回的 ACK 如果符合下列條件時:
  • 條件 1: 否 ACK 則會傳送先前已收到的線段。
  • 條件 2: A 區段收到,但沒有其他區段到達 200 毫秒 (預設值),為該連線內。
通常,除非延遲的 ACK 計時器 (200 毫秒) 逾時,連接收到的每個其他 TCP 區段傳送的 ACK。 您可以藉由使用本文的 < 解決方案 > 一節中的所描述的程序,若要新增 TcpDelAckTicks 登錄值 (這個值是新 Windows 2000 中) 來調整延遲的 ACK 計時器。

附註 要注意如果您變更 TcpDelAckTicks 登錄值時,您可能會遇到未預期的效果在未來。因此,Microsoft 建議您考慮其他替代方案,才能修改計時器。

如果前一個封包經過認可且通知變更要求回應已排入佇列的網域控制站段有時超過 200 毫秒的時間,就會發生延遲。 因為預設 ACK 計時器會計算 200 毫秒,TCP ACK 封包發生於 200 毫秒之後從用戶端接收到通知變更要求。 因為用戶端等待伺服器的回應,它與下一個 SMB 作業繼續執行之前,伺服器的延遲的 ACK 計時器就會計算其臨界值時,就會發生延遲。 如果您執行網路追蹤時,您注意到來自用戶端不是每個通知變更要求經歷延遲。

不會遇到延遲通知變更要求立即的前面是另一個的封包,不認可。 因此,應答不是延遲在網域控制站的認可,因為符合條件的第一個所描述的這一節開頭。 執行遇到延遲的通知變更要求已有前一個認可的封包 ; 因此,網域控制站沒有回應延遲的 ACK 計時器時間終止前,回 (預設值是 200 毫秒) 因為觸發第二個條件中這一節所述。

您無法修改執行緒優先順序排列,網域控制站的 ; 因此,您必須變更 [TCP 延遲 ACK 計時器值更小的值,以避免發生本文之 < 徵狀 > 一節中描述的徵狀。 您執行這項操作之後伺服器傳送 ACK 值更多經常但較短的間隔。

TcpDelAckTicks 登錄值的相關資訊,請參閱位於下列 Microsoft 網站的白皮書:
Microsoft Windows 2000 TCP/IP Implementation Details
如需有關這個問題的詳細資訊,按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
270926如何疑難排解 Windows 2000 中的網路檔案複本問題
在執行 Windows XP 或 Windows Server 2003 用戶端沒有名為控制項 TCP ACK 延遲的 ACK 計時器之前已到達 TcpAckFrequency 新的登錄機碼。如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
328890對控制 TCP 通知 (ACK) 行為在 Windows XP 和 Windows Server 2003 的新登錄項目
如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
321169當您從 Windows XP 複製檔案到 Windows 2000 網域控制站的慢速 SMB 效能

屬性

文章編號: 321098 - 上次校閱: 2007年3月1日 - 版次: 4.5
這篇文章中的資訊適用於:
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows 2000 Service Pack 3
  • Microsoft Windows 2000 Server SP2
  • Microsoft Windows 2000 Advanced Server SP2
  • Microsoft Windows 2000 Advanced Server SP3
關鍵字:?
kbmt kbprb KB321098 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:321098
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com