Desempenho da rede lento ao copiar arquivos para um controlador de domínios executando o Windows 2000 ou o Windows Server 2003

Traduções deste artigo Traduções deste artigo
ID do artigo: 321098 - Exibir os produtos aos quais esse artigo se aplica.
Importante Este artigo contém informações sobre como modificar o Registro. Antes de modificá-lo, faça um backup e certifique-se de que saiba como restaurá-lo caso ocorra algum problema. Para obter informações adicionais sobre como fazer backup, restaurar e modificar o Registro, clique no número abaixo para ler o artigo na Base de Dados de Conhecimento Microsoft (a página pode estar em inglês).
256986 Descrição do Registro do Microsoft Windows
Expandir tudo | Recolher tudo

Sintomas

Se você copiar arquivos de um computador cliente com o Microsoft Windows 2000, com o Microsoft Windows XP ou com o Microsoft Windows Server 2003 para um compartilhamento de rede, em um controlador de domínio, executando o Windows 2000 ou o Windows Server 2003, o desempenho da rede será mais lento ao copiar os mesmos arquivos para um servidor membro executando o Windows 2000 ou o Windows Server 2003. Será possível perceber este problema se você copiar muitos arquivos pequenos, no entanto, não o perceberá se copiar alguns arquivos grandes. Este problema apenas ocorrerá se o Microsoft Windows Explorer for usado para copiar os arquivos ou se uma janela do Windows Explorer estiver aberta e conectada ao servidor de destino. No entanto, se você usar Xcopy.exe para copiar os arquivos e todas as janelas do Windows Explorer estiverem fechadas, este problema não ocorrerá.

Causa

Este problema ocorre porque as operações de gravação do protocolo SMB (bloco de mensagens de servidor) em um controlador de domínio executando o Windows 2000 ou o Windows Server 2003 podem enfrentar um atraso de até 200 milissegundos entre as cópias de arquivos.

Se você examinar um rastreio do problema, perceberá que o atraso ocorre depois que o cliente envia ao servidor um comando Notificar alteração do SMB com a entrada FID correspondente à entrada FID da pasta de destino. O Windows Explorer posta uma solicitação Notificar alteração no compartilhamento de rede, que pede uma notificação caso algo seja alterado na pasta exibida no painel direito do Windows Explorer. Se um controlador de domínio receber essa solicitação, ele não responderá imediatamente e não enviará pacotes por até 200 milissegundos. Nesse ponto, um pacote de confirmação simples do protocolo TCP é enviado e a operação de arquivos reinicia como de costume.

Este comportamento é um resultado da interação entre dois componentes de redes centrais do Windows 2000: confirmações atrasadas TCP e priorização de thread em controladores de domínio. A priorização de thread permite que um controlador de domínio dê a prioridade adequada a operações de gerenciamento de contas e serviços de diretórios antes de algumas atividades SMB, como responder a solicitações notificar alteração.

Resolução

Aviso O uso incorreto do Editor do Registro, ou outro método, pode causar sérios problemas, que talvez exijam a reinstalação do sistema operacional. A Microsoft não garante que os problemas resultantes do uso incorreto do Editor do Registro possam ser solucionados. A modificação do Registro é de sua responsabilidade.
Ao considerar este problema, lembre-se de que ele apenas ocorre em circunstâncias muito específicas, ou seja, se um cliente estiver usando o Windows Explorer para copiar um grande número de arquivos para um controlador de domínio do Windows 2000. Se você alterar o valor do timer de confirmação atrasada, será possível evitar alguns dos sintomas, no entanto, se modificar um valor TCP/IP central, resultados inesperados poderão surgir no futuro. Por isso, a Microsoft aconselha considerar outras alternativas antes da modificação do timer. Outras soluções incluem mover os compartilhamentos de arquivos para um servidor membro ou usar uma ferramenta de terceiros (como o Xcopy ou o Robocopy, parte do Windows 2000 Resource Kit) para copiar vários arquivos para um controlador de domínio.

No controlador de domínio, é possível editar o valor do Registro TcpDelAckTicks para ajustar o timer de confirmação atrasada do TCP. Se você alterar esse timer para um valor menor, o servidor enviará um pacote de confirmação mais freqüentemente, mas em intervalos mais curtos.

Observe que, em um segmento muito saturado e com alta latência, o aumento de rede nos pacotes de confirmação pelo controlador de domínio pode pressionar ainda mais a rede. Teste integralmente o valor alterado do timer de confirmação atrasada do TCP para ter certeza de que ele não causará afunilamentos adicionais.

Se a rede identificar os pacotes de confirmação, aplique o seguinte hotfix Service Pack 3 (SP3) anterior ao Windows 2000 SP2 para poder modificar o valor do timer de confirmação atrasada (a página pode estar em inglês):

311833 O valor do Registro TcpDelAckTicks não tem efeito em tempos limites de confirmações
Depois de aplicar este hotfix, use o seguinte procedimento para adicionar o valor do Registro a seguir, que especifica o parâmetro personalizado para o timer de confirmação atrasada:
  1. Inicie o Editor do Registro (Regedt32.exe).
  2. Localize e clique na seguinte chave no Registro, em que Adapter GUID corresponde ao GUID do adaptador de rede que se conecta aos clientes:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\Adapter GUID
  3. No menu Editar, clique em Adicionar valor e adicione o seguinte valor do Registro:
    Nome do valor: TcpDelAckTicks
    Tipo de dados: REG_DWORD
    Dados do valor: Você pode definir esse valor para um intervalo de 0 a 6. A configuração padrão é 2 (200 milissegundos).
  4. Encerre o Editor do Registro.
  5. Reinicie o Windows para que estas alterações tenham efeito.
Este valor do Registro especifica o número de intervalos de 100 milissegundos a serem usados para o timer de confirmação atrasada por base de interface. Por padrão, o valor do timer de confirmação atrasada é 200 milissegundos. Se você definir o valor TcpDelAckTicks para 0, as confirmações atrasadas serão desabilitadas. Esta configuração faz com que o computador envie imediatamente um pacote de confirmação para cada pacote recebido.

Observação Os valores específicos para os adaptadores estão listados nas subchaves de cada adaptador. Certifique-se de adicionar o valor TcpDelAckTicks à seguinte chave do Registro:
HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\Adapter GUID
Não adicione este valor à seguinte chave do Registro:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters

Situação

A Microsoft confirmou que este é um problema nos produtos Microsoft que estão listados na seção "Aplica-se a".

Mais Informações

Em rastreamentos de rede, você perceberá que o cliente envia o pacote "SMB: C NT transact - Notify Change". O controlador de domínio do Windows 2000 retorna um pacote de confirmação ao cliente 200 milissegundos depois. Após receber o pacote de confirmação, o cliente inicia a próxima operação SMB e copia o arquivo seguinte.

Observação Se você estiver usando o Monitor de rede, será possível perceber melhor os atrasos ao usar o seguinte filtro:
SMB:Command == 0xA0 ( NT transact )
Use este filtro em combinação com as seguintes opções de exibição:
Hora: (x) Segundos do quadro anterior
É possível identificar as solicitações e as respostas correspondentes observando o seguinte atributo de quadros do SMB:
SMB: MID (Identificação de Multiplex)
A funcionalidade Confirmações atrasadas tem como base a RFC (Request for Comments) 1122. O TCP usa confirmações atrasadas para reduzir o número de pacotes enviados na rede. A pilha TCP/IP da Microsoft faz uma abordagem comum para a implementação de confirmações atrasadas. Quando os dados são recebidos pelo TCP em uma conexão, a pilha apenas retorna uma confirmação se uma das seguintes condições for atendida:
  • Condição 1: nenhuma confirmação é enviada para o segmento anterior recebido.
  • Condição 2: um segmento é recebido, mas nenhum outro segmento chega em 200 milissegundos (o valor padrão) para essa conexão.
Normalmente, uma confirmação é enviada para todos os outros segmentos TCP recebidos em uma conexão, a não ser que o timer de confirmação atrasada (200 milissegundos) perca a validade. É possível ajustar o timer de confirmação atrasada usando o procedimento, descrito na seção "Resolução" deste artigo, para adicionar o valor do Registro TcpDelAckTicks (este valor é novo no Windows 2000).

Observação Lembre-se de que, se você alterar o valor do Registro TcpDelAckTicks, efeitos inesperados poderão ocorrer no futuro. Por isso, a Microsoft aconselha considerar outras alternativas antes da modificação do timer.

O atraso ocorre se o pacote anterior tiver sido confirmado e a resposta da solicitação Notificar alteração for colocada em fila por um controlador de domínio durante um período que, às vezes, excede 200 milissegundos. Como o timer de confirmação padrão conta até 200 milissegundos, o pacote de confirmação do TCP ocorre 200 milissegundos após o recebimento da solicitação Notificar alteração do cliente. Como o cliente aguarda uma resposta do servidor antes de continuar com a próxima operação do SMB, o atraso ocorre enquanto o timer de confirmação atrasada do servidor conta até seu limite. Se você realizar um rastreamento de rede, perceberá que nem todas as solicitações Notificar alteração do cliente apresentam atrasos.

A solicitação Notificar alteração que não apresentar o atraso será imediatamente precedida por outro pacote não confirmado. Por isso, a confirmação não atrasa na confirmação do controlador de domínio, porque a primeira das condições descritas no início desta seção é atendida. As solicitações Notificar alteração que apresentarem o atraso tiveram os pacotes anteriores confirmados; portanto, o controlador de domínio não responde até que o timer de confirmação atrasada expire (o valor padrão é de 200 milissegundos), pois a segunda das condições descritas nesta seção é disparada.

Não é possível modificar a priorização de thread de um controlador de domínios e, por isso, é necessário diminuir o valor do timer de confirmação atrasada para impedir os sintomas descritos na seção "Sintomas" deste artigo. Depois de fazer isso, o servidor enviará valores de confirmação mais freqüentemente, e em intervalos menores.

Para obter mais informações sobre o valor do Registro TcpDelAckTicks, consulte o white paper localizado no seguinte site da Microsoft (em inglês):
Detalhes da implementação TCP/IP do Microsoft Windows 2000
Para obter informações adicionais sobre este problema, clique no número abaixo para ler o artigo na Base de Dados de Conhecimento da Microsoft (a página pode estar em inglês):
270926 Como solucionar problemas de cópia de arquivos de rede no Windows 2000
Em um cliente executando o Windows XP ou o Windows Server 2003, existe uma nova chave do Registro denominada TcpAckFrequency, que controla confirmações de TCP antes de o timer de confirmação atrasada ser atingido. Para obter mais informações, clique no número abaixo para ler o artigo na Base de Dados de Conhecimento Microsoft (a página pode estar em inglês):
328890 Nova entrada do Registro para controlar o comportamento de confirmação do TCP no Windows XP e no Windows Server 2003
Para obter mais informações, clique no número abaixo para ler o artigo na Base de Dados de Conhecimento Microsoft (a página pode estar em inglês):
321169 Desempenho lento de SMB ao copiar arquivos do Windows XP para um controlador de domínio do Windows 2000

Propriedades

ID do artigo: 321098 - Última revisão: sexta-feira, 22 de setembro de 2006 - Revisão: 4.1
A informação contida neste artigo aplica-se 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
Palavras-chave: 
kbprb KB321098

Submeter comentários

 

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