Podczas kopiowania plików na kontroler domeny z systemem Windows 2000 lub Windows Server 2003 występuje mała wydajność sieci

Tłumaczenia artykułów Tłumaczenia artykułów
Numer ID artykułu: 321098 - Zobacz jakich produktów dotyczą zawarte w tym artykule porady.
Ważne Ten artykuł zawiera informacje na temat modyfikowania rejestru. Przed zmodyfikowaniem rejestru wykonaj jego kopię zapasową i upewnij się, że wiesz, jak przywrócić rejestr w przypadku pojawienia się problemu. Aby uzyskać informacje dotyczące wykonywania kopii zapasowej, przywracania i modyfikowania rejestru, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
256986 Description of the Microsoft Windows registry
Rozwiń wszystko | Zwiń wszystko

Symptomy

Podczas kopiowania plików z komputera klienckiego z systemem Microsoft Windows 2000, Microsoft Windows XP lub Microsoft Windows Server 2003 do udziału sieciowego na kontrolerze domeny z systemem Windows 2000 lub Windows Server 2003 wydajność sieci jest mniejsza niż podczas kopiowania tych samych plików na serwer członkowski z systemem Windows 2000 lub Windows Server 2003. Problem może występować podczas kopiowania wielu małych plików, lecz może być niezauważalny podczas kopiowaniu niewielu dużych plików. Problem występuje tylko w przypadku kopiowania plików za pomocą Eksploratora Windows firmy Microsoft lub jeśli jest otwarte okno Eksploratora Windows połączone z serwerem docelowym. Jeśli jednak pliki są kopiowane przy użyciu narzędzia Xcopy.exe i wszystkie okna Eksploratora Windows są zamknięte, problem nie występuje.

Przyczyna

Problem ten występuje, ponieważ operacje zapisu bloku komunikatów (SMB, server message block) serwera na kontrolerze domeny z systemem Windows 2000 lub Windows Server 2003 mogą powodować opóźnienia do 200 milisekund między operacjami kopiowania.

Szczegółowo śledząc problem, można zauważyć, że opóźnienie występuje wtedy, gdy komputer kliencki wyśle do serwera polecenie SMB Notify Change z numerem dojścia (FID) równym numerowi dojścia do folderu docelowego. Eksplorator Windows kieruje żądanie potwierdzenia zmiany do udziału sieciowego, aby uzyskać powiadomienie, jeśli w folderze wyświetlanym w prawym okienku Eksploratora nastąpią zmiany. Gdy kontroler domeny otrzyma żądanie potwierdzenia zmiany, odpowiedź nie jest wysyłana natychmiast; komputer nie wysyła pakietów przez okres do 200 milisekund. Następnie wysyłany jest prosty pakiet ACK protokołu TCP (Transmission Control Protocol) i są wznawiane normalne operacje na plikach.

Takie zachowanie jest wynikiem oddziaływań między dwoma podstawowymi składnikami sieciowymi systemu Windows 2000, opóźnionym pakietami ACK protokołu TCP oraz nadawaniem priorytetu wątkom na kontrolerach domen. Nadawanie priorytetu wątkom na kontrolerze domeny umożliwia właściwe ustawienie priorytetów usług katalogowych i operacji zarządzania kontami w stosunku do niektórych operacji SMB, takich jak odpowiedzi na żądania potwierdzenia zmiany.

Rozwiązanie

Ostrzeżenie Niepoprawne zmodyfikowanie rejestru przy użyciu Edytora rejestru lub innej metody może stać się przyczyną poważnych problemów. Problemy te mogą spowodować, że konieczna będzie ponowna instalacja systemu operacyjnego. Firma Microsoft nie może zagwarantować, że rozwiązanie tych problemów będzie możliwe. Można modyfikować rejestr na własną odpowiedzialność.
Podczas rozpatrywania tego problemu należy pamiętać, że występuje on tylko w ściśle określonych warunkach, tj. jedynie w przypadku kopiowania dużej liczby plików z komputera klienckiego na kontroler domeny z systemem Windows 2000 za pomocą Eksploratora Windows. Zmiana wartości taktowania opóźnienia pakietów ACK może zlikwidować występowanie niektórych symptomów, jednak modyfikacja podstawowych wartości parametrów protokołu TCP/IP może mieć nieoczekiwane wyniki. Dlatego firma Microsoft zaleca, aby przed modyfikacją ustawień czasowych rozważyć inne możliwości. Inne rozwiązania obejmują przeniesienie udziałów sieciowych na serwery członkowskie lub kopiowanie dużej liczby plików na kontroler domeny za pomocą innego narzędzia (takiego jak Xcopy lub Robocopy, które jest zawarte w zestawie Windows 2000 Resource Kit).

Aby ustawić czas opóźnienia pakietów ACK protokołu TCP na kontrolerze domeny, należy zmodyfikować wartość rejestru TcpDelAckTicks. Zmiana opóźnienia pakietu ACK protokołu TCP na mniejszą wartość powoduje wysyłanie pakietów ACK częściej, w krótszych odstępach.

Należy zauważyć, że w segmentach sieci o długim czasie oczekiwania i dużym nasyceniu zwiększenie ruchu sieciowego o dodatkowe pakiety ACK z kontrolera domeny powoduje dodatkowe obciążenie sieci. Aby się upewnić, że zmiana wartości opóźnienia pakietu ACK protokołu TCP nie spowoduje występowania dodatkowych wąskich gardeł, należy tę wartość dokładnie przetestować.

Jeśli sieć może obsłużyć dodatkowe pakiety ACK, to w systemie operacyjnym Windows 2000 z dodatkiem Service Pack 2 (SP2) należy zastosować następującą poprawkę wydaną przed ukazaniem się dodatku Service Pack 3 (SP3), która umożliwia modyfikowanie wartości opóźnienia pakietów ACK:

311833 The TcpDelAckTicks registry value has no effects on ACK timeouts
Aby po zastosowaniu tej poprawki dodać wartość rejestru określającą niestandardowy parametr opóźnienia pakietów ACK, postępuj zgodnie z następującą procedurą:
  1. Uruchom Edytor rejestru (Regedt32.exe).
  2. Zlokalizuj i kliknij następujący klucz rejestru, gdzie GUID karty jest identyfikatorem GUID karty sieciowej łączącej kontroler domeny z komputerami klienckimi:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\GUID karty
  3. W menu Edycja kliknij polecenie Dodaj wartość, a następnie dodaj następującą wartość rejestru:
    Nazwa wartości: TcpDelAckTicks
    Typ danych: REG_DWORD
    Dane wartości: Wartość można zmieniać w zakresie od 0 do 6. Ustawieniem domyślnym jest 2 (200 milisekund).
  4. Zamknij Edytor rejestru.
  5. Uruchom ponownie system Windows, aby wprowadzona zmiana została uwzględniona.
Ta wartość rejestru określa liczbę 100-milisekundowych interwałów opóźnienia pakietów ACK dla każdej karty sieciowej. Wartością domyślną opóźnienia pakietu ACK jest 200 milisekund. Ustawienie klucza TcpDelAckTicks na wartość 0 powoduje wyłączenie opóźnienia pakietów ACK. Takie ustawienie powoduje natychmiastowe wysłanie pakietu ACK dla każdego pakietu odebranego przez komputer.

Uwaga Wartości specyficzne dla każdej z kart sieciowych są podane w podkluczach dla każdej karty. Należy się upewnić, że wartość TcpDelAckTicks została dodana do następującego klucza rejestru:
HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\GUID karty
Nie należy dodawać tej wartości do następującego klucza rejestru:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters

Stan

Firma Microsoft potwierdziła, że jest to usterka występująca w produktach firmy Microsoft wymienionych w sekcji „Informacje zawarte w tym artykule dotyczą”.

Więcej informacji

W rejestrach ze śledzenia ruchu sieciowego można sprawdzić, że komputer kliencki wysyła pakiet „SMB: C NT transact - Notify Change”. Kontroler domeny z systemem Windows 2000 odpowiada pakietem ACK wysłanym do komputera klienckiego po 200 milisekundach. Otrzymawszy pakiet ACK, komputer kliencki rozpoczyna następną operację SMB i kopiuje następny plik.

Uwaga W przypadku korzystania z Monitora sieci opóźnienia będą lepiej widoczne, jeśli zostanie zastosowany następujący filtr:
SMB:Command == 0xA0 ( NT transact )
Filtr ten należy stosować łącznie z następującymi opcjami wyświetlania:
Czas: (x) sekund od poprzedniej ramki
Odpowiadające żądania i odpowiedzi można zidentyfikować, sprawdzając następujący atrybut ramki SMB:
SMB: Multiplex ID (MID)
Funkcjonalność opóźnionych pakietów ACK jest zdefiniowana w dokumencie RFC (Request for Comments) 1122. W protokole TCP stosuje się opóźnione pakiety ACK, aby zredukować liczbę pakietów przesyłanych w sieci. W stosie protokołu TCP/IP firmy Microsoft zastosowano typową metodę implementacji opóźnionych pakietów ACK. Podczas odbierania danych przesyłanych w połączeniu TCP stos zwraca pakiet ACK, jeśli jest spełniony jeden z następujących warunków:
  • Warunek 1. Nie wysłano pakietu ACK dla poprzednio odebranego segmentu.
  • Warunek 2. Segment został odebrany, ale w okresie 200 milisekund (wartość domyślna) nie pojawił się żaden inny segment w tym połączeniu.
Pakiet ACK jest zazwyczaj wysyłany po co drugim odebranym w danym połączeniu segmencie protokołu TCP lub jeśli zostanie przekroczone opóźnienie pakietu ACK (200 milisekund). Opóźnienie pakietu ACK można regulować, stosując procedurę opisaną w sekcji „Rozwiązanie” tego artykułu, aby dodać wartość rejestru TcpDelAckTicks (jest to nowa wartość w systemie Windows 2000).

Uwaga Należy pamiętać, że zmiana wartości rejestru TcpDelAckTicks może mieć nieoczekiwane skutki. Dlatego firma Microsoft zaleca, aby przed modyfikacją ustawień czasowych rozważyć inne możliwości.

Opóźnienie występuje wtedy, gdy poprzedni pakiet został potwierdzony i odpowiedź na żądanie potwierdzenia zmiany jest umieszczana w kolejce przez kontroler domeny na okres, który czasem jest dłuższy niż 200 milisekund. Ponieważ domyślne opóźnienie wynosi 200 milisekund, pakiet ACK protokołu TCP jest wysyłany po upływie 200 milisekund od otrzymania żądania potwierdzenia zmiany od komputera klienckiego. Ponieważ komputer kliencki oczekuje na odpowiedź serwera, zanim wykona następną operację SMB, następuje opóźnienie do momentu osiągnięcia progowej wartości opóźnienia pakietu ACK. Przeprowadzając śledzenie ruchu sieciowego, można zauważyć, że nie po każdym żądaniu potwierdzenia zmiany występuje opóźnienie.

Żądanie potwierdzenia zmiany, które nie powoduje opóźnienia, jest bezpośrednio poprzedzone innym pakietem, który nie został potwierdzony. Potwierdzenie kontrolera domeny nie jest opóźnione, ponieważ został spełniony pierwszy z warunków opisanych na początku tej sekcji. Żądania potwierdzenia zmiany, w których przypadku wystąpiło opóźnienie, były poprzedzone potwierdzonym pakietem; kontroler domeny nie odpowiada, dopóki nie upłynie czas opóźnienia (wartość domyślna wynosi 200 milisekund), czyli do momentu spełnienia drugiego z warunków opisanych w tej sekcji.

Ponieważ nie można zmienić ustawień priorytetów wątków kontrolera domeny, to aby zapobiec objawom opisanym w sekcji „Symptomy”, należy zmniejszyć wartość opóźnienia pakietu ACK protokołu TCP. Dzięki temu pakiety ACK będą wysyłane przez serwer częściej, w krótszych odstępach.

Aby uzyskać więcej informacji dotyczących wartości rejestru TcpDelAckTicks, zapoznaj się z oficjalnym dokumentem umieszczonym w następującej witrynie firmy Microsoft w sieci Web:
Microsoft Windows 2000 TCP/IP Implementation Details (Szczegóły implementacji protokołu TCP/IP w systemie Windows 2000)
Aby uzyskać więcej informacji dotyczących tego problemu, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
270926 JAK: Rozwiązywanie problemów z kopiowaniem plików w sieci w systemie Windows 2000
Na komputerach klienckich z systemem Windows XP lub Windows Server 2003 występuje nowy klucz rejestru o nazwie TcpAckFrequency, który steruje pakietami ACK protokołu TCP przed osiągnięciem czasu opóźnienia pakietu ACK. Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
328890 New registry entry for controlling the TCP Acknowledgment (ACK) behavior in Windows XP and in Windows Server 2003
Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
321169 Niska wydajność protokołu SMB przy kopiowaniu plików z systemu Windows XP na kontroler domeny Windows 2000

Właściwości

Numer ID artykułu: 321098 - Ostatnia weryfikacja: 11 września 2006 - Weryfikacja: 4.1
Informacje zawarte w tym artykule dotyczą:
  • 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 Service Pack 2
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Advanced Server
Słowa kluczowe: 
kbprb KB321098

Przekaż opinię

 

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