La copia di file su un controller di dominio di Windows 2000 causa un degrado delle prestazioni di rete

Traduzione articoli Traduzione articoli
Identificativo articolo: 321098 - Visualizza i prodotti a cui si riferisce l?articolo.
Importante In questo articolo sono contenute informazioni su come modificare il Registro di sistema. Assicurarsi di eseguire il backup del Registro di sistema prima di modificarlo e di sapere come ripristinare il Registro di sistema qualora si verifichino dei problemi. Per ulteriori informazioni su come eseguire il backup, ripristinare e modificare il Registro di sistema, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
256986 Descrizione del Registro di sistema di Microsoft Windows
Espandi tutto | Chiudi tutto

Sintomi

La copia di file da un computer client basato su Microsoft Windows 2000, Microsoft Windows XP o Microsoft Windows Server 2003 in una condivisione di rete in un controller di dominio che esegue Windows 2000 o Windows Server 2003 determina prestazioni di rete inferiori rispetto alla copia degli stessi file in un server membro che esegue Windows 2000 o Windows Server 2003. ╚ possibile notare questo problema se si copiano molti file di piccole dimensioni, ma anche se si copiano alcuni file di grandi dimensioni. Il problema si verifica solo se si utilizza Esplora risorse per copiare i file o se Ŕ aperta una finestra di Esplora risorse connessa al server di destinazione. Se invece si utilizza Xcopy.exe per copiare i file e tutte le finestre di Esplora risorse sono chiuse, questo problema non si presenterÓ.

Cause

Il problema si verifica perchÚ le operazioni di scrittura SMB (Server Message Block) su un controller di dominio di Windows 2000 o di Windows Server 2003 possono presentare un ritardo pari a un massimo di 200 millisecondi tra due operazioni di copia di file.

Se si esamina un'analisi del problema, sarÓ possibile notare come tale ritardo abbia luogo a seguito dell'invio da parte del client al server di un comando SMB Notify Change con la voce FID corrispondente alla voce FID della cartella di destinazione. Esplora risorse pubblica una richiesta di notifica di cambiamento (Notify Change) sulla condivisione di rete, in cui chiede di ricevere una notifica qualora cambi qualche elemento nella cartella visualizzata nel riquadro di destra di Esplora risorse. Quando un controller di dominio riceve la richiesta di notifica di cambiamento, non risponde a tale richiesta immediatamente e non invia pacchetti per un intervallo che pu˛ durare fino a 200 millisecondi. A questo punto, viene inviato un semplice pacchetto di riconoscimento (ACK) TCP (Transmission Control Protocol) e l'operazione di copia dei file viene ripresa normalmente.

Questo comportamento Ŕ il risultato dell'interazione tra due componenti di rete di base di Windows 2000, i pacchetti di riconoscimento (ACK) TCP ritardati e l'impostazione delle prioritÓ dei thread su controller di dominio. L'impostazione delle prioritÓ dei thread consente a un controller di dominio di impostare correttamente le prioritÓ dei servizi di directory e delle operazioni di gestione degli account prima di altre attivitÓ SMB, quali l'invio di una risposta alle richieste di notifica di cambiamento.

Risoluzione

Avviso L'errata modifica del Registro di sistema tramite l'editor o un altro metodo pu˛ causare seri problemi, che potrebbero richiedere la reinstallazione del sistema operativo. Microsoft non garantisce la soluzione di eventuali problemi derivanti dall'errata modifica del Registro di sistema. La modifica del Registro di sistema Ŕ a rischio e pericolo dell'utente.
╚ bene tenere sempre presente che questo problema si verifica solo in circostanze molto particolari ovvero se un client sta utilizzando Esplora risorse per copiare un numero elevato di file su un controller di dominio di Windows 2000. Cambiando il valore del timer degli ACK ritardati, Ŕ possibile impedire il verificarsi di alcuni dei sintomi descritti, ma allo stesso tempo, la modifica di un valore TCP/IP di base pu˛ determinare risultati del tutto inattesi in futuro. Microsoft consiglia pertanto di considerare altre possibili alternative prima di modificare il valore del timer. Altre soluzioni potrebbero comprendere lo spostamento delle condivisioni di file su un server membro o l'utilizzo di un altro strumento, ad esempio Xcopy o Robocopy, contenuto nel Resource Kit di Windows 2000, per copiare un numero elevato di file su un controller di dominio.

Sul controller di dominio Ŕ possibile modificare il valore del Registro di sistema TcpDelAckTicks in modo da regolare il timer degli ACK TCP ritardati. Se si imposta un valore inferiore, il server invierÓ un pacchetto ACK con una frequenza maggiore, ma a intervalli pi¨ brevi.

Con un tempo di latenza elevato e un segmento di rete estremamente saturato, l'aumento del numero dei pacchetti ACK provenienti dal controller di dominio pu˛ tuttavia determinare un ulteriore aumento del carico di rete. Per assicurarsi che il valore modificato del timer degli ACK TCP ritardati non causi ulteriori colli di bottiglia, Ŕ consigliabile effettuare prove accurate con tale valore.

Se la rete Ŕ in grado di gestire gli ulteriori pacchetti ACK, applicare il seguente hotfix successivo a Windows 2000 Service Pack 2 (SP2), ma precedente al Service Pack 3 (SP3), in modo da poter modificare il valore del timer degli ACK ritardati:

311833 Il valore del Registro di sistema TcpDelAckTicks non ha effetto sui timeout ACK
Dopo avere applicato questo hotfix, attenersi alla procedura descritta di seguito per aggiungere il seguente valore del Registro di sistema che specifica il parametro personalizzato per il timer degli ACK ritardati:
  1. Avviare l'editor del Registro di sistema (Regedt32.exe).
  2. Nel Registro di sistema trovare e selezionare la seguente chiave, dove GUID scheda Ŕ l'identificatore univoco globale (GUID, Globally Unique Identifier) della scheda di rete che si connette ai client:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\GUID scheda
  3. Scegliere Aggiungi valore dal menu Modifica e aggiungere il seguente valore:
    Nome valore: TcpDelAckTicks
    Tipo di dati: REG_DWORD
    Dati valore: Ŕ possibile impostare questo valore su un intervallo compreso tra 0 e 6. L'impostazione predefinita Ŕ 2 ovvero 200 millisecondi.
  4. Chiudere l'editor del Registro di sistema.
  5. Riavviare Windows affinchÚ la modifica abbia effetto.
Questo valore del Registro di sistema specifica un intervallo di 100 millisecondi per il timer degli ACK ritardati per le singole interfacce. Per impostazione predefinita, il valore del timer degli ACK ritardati Ŕ di 200 millisecondi. Se il valore di TcpDelAckTicks viene impostato su 0, i riconoscimenti ritardati verranno disabilitati. Questa impostazione fa sý che il computer invii immediatamente un pacchetto ACK per ciascun pacchetto ricevuto.

Nota I valori specifici per le varie schede sono elencati in corrispondenza delle sottochiavi di ciascuna scheda. Verificare di aggiungere il valore TcpDelAckTicks alla seguente chiave del Registro di sistema:
HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\GUID scheda
e non nella seguente chiave del Registro di sistema:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters

Status

Microsoft ha confermato che questo problema si verifica con i prodotti elencati alla fine del presente articolo.

Informazioni

Le analisi di rete mostrano che il client invia il pacchetto "SMB: C NT transact - Notify Change" e il controller di dominio di Windows 2000 restituisce un pacchetto ACK al client dopo 200 millisecondi. Una volta ricevuto il pacchetto ACK, il client avvia l'operazione SMB successiva e copia il file successivo.

Nota Se si utilizza Network Monitor, i ritardi risulteranno pi¨ evidenti utilizzando il seguente filtro:
SMB:Command == 0xA0 ( NT transact )
Utilizzare questo filtro in combinazione con le seguenti opzioni di visualizzazione:
Time: (x) secondi dal frame precedente
╚ possibile identificare le richieste e le risposte corrispondenti osservando il seguente attributo di frame SMB:
SMB: Multiplex ID (MID)
La funzionalitÓ dei riconoscimenti ritardati Ŕ basata sulla specifica Request for Comments (RFC) 1122. Il protocollo TCP utilizza gli ACK ritardati per ridurre il numero di pacchetti inviati alla rete. Lo stack TCP/IP Microsoft adotta un approccio comune all'implementazione degli ACK ritardati. Quando i dati vengono ricevuti da TCP su una connessione, lo stack restituisce un ACK solo in presenza delle seguenti condizioni:
  • Condizione 1: non Ŕ stato inviato alcun ACK per il segmento precedente ricevuto.
  • Condizione 2: viene ricevuto un segmento, ma nessun altro segmento entro un intervallo di 200 millisecondi (valore predefinito) per tale connessione.
In genere viene inviato un ACK per ogni altro segmento TCP ricevuto su una connessione, a meno che non sia scaduto l'intervallo per gli ACK ritardati, ovvero 200 millisecondi. ╚ possibile modificare il timer degli ACK ritardati utilizzando la procedura descritta nella sezione "Risoluzione" di questo articolo per aggiungere il valore del Registro di sistema TcpDelAckTicks, un valore nuovo in Windows 2000.

Nota ╚ bene tenere presente che modificando il valore del Registro di sistema TcpDelAckTicks si potranno ottenere effetti inattesi in futuro. Microsoft consiglia pertanto di considerare altre possibili alternative prima di modificare il valore del timer.

Il ritardo si verifica se il pacchetto precedente Ŕ stato riconosciuto e la risposta alla richiesta di notifica di cambiamento viene accodata da un controller di dominio per un periodo di tempo che talvolta supera i 200 millisecondi. PoichÚ il valore predefinito del timer degli ACK ritardati Ŕ di 200 millisecondi, il pacchetto ACK TCP viene inviato 200 millisecondi dopo che la richiesta di notifica di cambiamento Ŕ stata ricevuta dal client. Dato che il client attende la risposta dal server prima di procedere con l'operazione SMB successiva, il ritardo coincide con l'intervallo di tempo impiegato dal timer degli ACK ritardati del server per raggiungere la soglia di 200 millisecondi. Se si esegue un'analisi di rete si noterÓ che non tutte le richieste di notifica di cambiamento provenienti dal client presentano un ritardo.

La richiesta di notifica di cambiamento che non presenta il ritardo Ŕ immediatamente preceduta da un altro pacchetto che non viene riconosciuto. Pertanto, il riconoscimento non viene ritardato nel riconoscimento del controller di dominio in quanto Ŕ soddisfatta la prima delle condizioni descritte all'inizio di questa sezione. Le richieste di notifica di cambiamento che presentano un ritardo mostrano pacchetti precedenti riconosciuti. Il controller di dominio pertanto non risponde finchÚ non Ŕ trascorso l'intervallo degli ACK ritardati, il cui valore predefinito Ŕ pari a 200 millisecondi, perchÚ si verifica la seconda delle condizioni descritte in questa sezione.

Non Ŕ possibile modificare l'assegnazione di prioritÓ dei thread del controller di dominio, pertanto Ŕ necessario ridurre il valore del timer degli ACK TCP ritardati per impedire il verificarsi delle condizioni descritte nella sezione "Sintomi" di questo articolo. Fatto questo, il server invierÓ valori ACK con maggiore frequenza ma a intervalli pi¨ brevi.

Per ulteriori informazioni sul valore del Registro di sistema TcpDelAckTicks, vedere il white paper disponibile nel seguente sito Web Microsoft (informazioni in lingua inglese):
Microsoft Windows 2000 TCP/IP Implementation Details
Per ulteriori informazioni su questo problema, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
270926 Risoluzione dei problemi relativi alla copia di file di rete in Windows 2000
Su un client che esegue Windows XP o Windows Server 2003 Ŕ disponibile una nuova chiave del Registro di sistema denominata TcpAckFrequency che consente di controllare gli ACK TCP prima della scadenza del timer degli ACK ritardati. Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
328890 Nuova chiave del Registro di sistema per il controllo del comportamento di acknowledgment (ACK) TCP in Windows XP e Windows Server 2003
Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
321169 Riduzione delle prestazioni SMB quando si copiano file da Windows XP a un controller di dominio di Windows 2000

ProprietÓ

Identificativo articolo: 321098 - Ultima modifica: lunedý 28 agosto 2006 - Revisione: 4.1
Le informazioni in questo articolo si applicano a
  • 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
Chiavi:á
kbprb KB321098
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

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