El rendimiento de la red es lento si copia los archivos en un controlador de dominio que está ejecutando Windows 2000 o Windows Server 2003

Seleccione idioma Seleccione idioma
Id. de artículo: 321098 - Ver los productos a los que se aplica este artículo
Importante:
Este artículo contiene información acerca de cómo modificar el Registro. Antes de modificar el Registro, asegúrese de hacer una copia de seguridad del mismo y de que sabe cómo restaurarlo si se produce algún problema. Para obtener información acerca de cómo realizar una copia de seguridad, restaurar y modificar el Registro, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
256986 Definición del Registro de Microsoft Windows
Expandir todo | Contraer todo

Síntomas

Si copia los archivos de un equipo cliente basado en Microsoft Windows 2000, Microsoft Windows XP o Microsoft Windows Server 2003 en un recurso compartido de red de un controlador de dominio que ejecuta Windows 2000 o Windows Server 2003, el rendimiento de la red es menor que si copia los mismos archivos en un servidor miembro que ejecute Windows 2000 o Windows Server 2003. Puede observar este problema si copia muchos archivos pequeños pero es posible que no lo observe si copia archivos grandes. Este problema sólo se produce si utiliza el Explorador de Microsoft Windows para copiar los archivos o si una ventana del Explorador de Windows está abierta y conectada al servidor de destino. Sin embargo, si utiliza Xcopy.exe para copiar los archivos y todas las ventanas del Explorador de Windows están cerradas, no experimenta este problema.

Causa

Este problema se produce porque las operaciones de escritura del bloque de mensajes de servidor (SMB, Server Message Block) en un controlador de dominio que ejecuta Windows 2000 o Windows Server 2003 pueden experimentar un retraso de 200 milisegundos entre las copias de archivos.

Si revisa una traza del problema, observa que el retraso se produce después de que el cliente envía un comando SMB Notify Change al servidor con la entrada de FID que coincide con la de la carpeta de destino. El Explorador de Windows envía una solicitud Notify Change en el recurso compartido de red en la que pide que se le informe si cambia algo en la carpeta que aparece en el panel derecho del Explorador de Windows. Si un controlador de dominio recibe la solicitud Notify Change, no responde inmediatamente a ella; no envía paquetes durante un intervalo de hasta 200 milisegundos. En ese momento, se envía un paquete de confirmación (ACK) simple del Protocolo de control de transmisión (TCP) y la operación del archivo se reanuda como de costumbre.

Este comportamiento es resultado de la interacción entre dos componentes de conexión de red principales de Windows 2000: las ACK de TCP con retraso y la asignación de prioridad a los subprocesos en los controladores de dominio. La asignación de prioridad a los subprocesos permite a un controlador de dominio dar prioridad correctamente a los servicios de directorio y a las operaciones de administración de cuentas antes que a algunas actividades de SMB, por ejemplo a la respuesta a las solicitudes Notify Change.

Solución

Advertencia:
Pueden producirse problemas graves si modifica incorrectamente el Registro mediante el Editor del Registro o con cualquier otro método. Estos problemas pueden requerir que reinstale el sistema operativo. Microsoft no puede garantizar la solución de esos problemas. Modifique el Registro bajo su responsabilidad.
Al considerar este problema, sea consciente de que sólo aparece en circunstancias muy concretas; sólo se produce si un cliente usa el Explorador de Windows para copiar un gran número de archivos en un controlador de dominio basado en Windows 2000. Si cambia el valor del temporizador de ACK con retraso, puede evitar que algunos de los síntomas aparezcan; sin embargo, si modifica un valor de TCP/IP básico, puede experimentar resultados inesperados en el futuro. Por consiguiente, Microsoft recomienda que considere otras alternativas antes de modificar el temporizador. Otras soluciones incluyen mover los recursos compartidos de archivos a un servidor miembro o utilizar otra herramienta (como Xcopy o Robocopy, que forma parte del Kit de recursos de Windows 2000) para copiar grandes cantidades de archivos a un controlador de dominio.

En el controlador de dominio puede modificar el valor TcpDelAckTicks del Registro para ajustar el temporizador de ACK con retraso de TCP. Si cambia el temporizador de ACK con retraso de TCP a un valor más bajo, el servidor envía con más frecuencia un paquete ACK pero a intervalos más cortos.

Tenga en cuenta que en un segmento muy saturado con una latencia alta, el aumento en la red de los paquetes ACK del controlador de dominio puede someter a la red a una carga adicional. Para asegurarse de que el temporizador de ACK con retraso de TCP no provoca más cuellos de botella, pruebe el valor minuciosamente.

Si la red puede tratar los paquetes ACK adicionales, aplique al Service Pack 2 (SP2) de Windows 2000 la siguiente revisión (hotfix) anterior al Service Pack 3 (SP3) para que pueda modificar el valor del temporizador de ACK con retraso:

311833 El valor TcpDelAckTicks del Registro no tiene efecto en los tiempos de espera de ACK
Después de aplicar esta revisión, utilice el procedimiento siguiente para agregar el valor del Registro siguiente que especifica el parámetro personalizado para el temporizador de ACK con retraso:
  1. Inicie el Editor del Registro (Regedt32.exe).
  2. Busque la clave siguiente en el Registro y haga clic en ella, donde GUID de adaptador es el identificador único global (GUID) del adaptador de red que conecta a los clientes:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\GUID de adaptador
  3. En el menú Edición, haga clic en Agregar valor y agregue el siguiente valor al Registro:
    Nombre de valor: TcpDelAckTicks
    Tipo de datos: REG_DWORD
    Información del valor: puede establecer este valor en un intervalo de 0 a 6. La configuración predeterminada es 2 (200 milisegundos).
  4. Cierre el Editor del Registro.
  5. Reinicie Windows para que este cambio surta efecto.
Este valor del Registro especifica el número de intervalos de 100 milisegundos que hay que utilizar para el temporizador de ACK con retraso en función de cada interfaz. De forma predeterminada, el valor del temporizador de ACK con retraso es de 200 milisegundos. Si establece el valor TcpDelAckTicks en 0, se deshabilitan las confirmaciones con retraso. Esta configuración hace que el equipo envíe inmediatamente un paquete ACK para cada paquete que reciba.

Nota:
Los valores específicos de cada adaptador se muestran bajo las subclaves correspondientes. Asegúrese de que agrega el valor TcpDelAckTicks a la clave del Registro siguiente:
HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\GUID de adaptador
No agregue este valor a la clave del Registro siguiente:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "La información de este artículo se refiere a:".

Más información

En las trazas de red, puede ver que el cliente envía el paquete "SMB: C NT transact - Notify Change". El controlador de dominio basado en Windows 2000 devuelve un paquete ACK al cliente 200 milisegundos más tarde. Una vez que el cliente recibe el paquete ACK, inicia la siguiente operación de SMB y copia el siguiente archivo.

Nota:
Si usa Monitor de red, puede ver los retrasos mejor si utiliza el filtro siguiente:
SMB:Command == 0xA0 (NT transact)
Use este filtro en combinación con las opciones de presentación siguientes:
Time: (x) Segundos transcurridos desde la trama anterior
Puede identificar las solicitudes y respuestas correspondientes examinando el atributo de trama de SMB siguiente:
SMB: Multiplex ID (MID)
La funcionalidad de confirmaciones con retraso se basa en el documento Solicitud de comentarios (RFC) 1122. TCP utiliza ACK con retraso para reducir el número de paquetes que se envían en la red. La pila TCP/IP de Microsoft adopta un enfoque común para implementar las ACK con retraso. Cuando TCP recibe los datos en una conexión, la pila sólo devuelve una ACK si se cumple alguna de las condiciones siguientes:
  • Condición 1: no se envía ninguna ACK para el segmento anterior que se recibe.
  • Condición 2: se recibe un segmento, pero no llega ningún otro segmento durante 200 milisegundos (el valor predeterminado) para esa conexión.
Normalmente, se envía una ACK para cada dos segmentos TCP que se reciben en una conexión a menos que el temporizador de ACK con retraso (200 milisegundos) caduque. Puede ajustar el temporizador de ACK con retraso utilizando el procedimiento que se describe en la sección "Resolución" de este artículo para agregar el valor del Registro TcpDelAckTicks (este valor es nuevo en Windows 2000).

Nota:
Tenga en cuenta que, si cambia el valor del Registro TcpDelAckTicks, puede experimentar efectos inesperados en el futuro. Por consiguiente, Microsoft recomienda que considere otras alternativas antes de modificar el temporizador.

El retraso se produce si el paquete anterior se confirmó y un controlador de dominio pone en cola la respuesta a la solicitud Notify Change durante un período que a veces supere los 200 milisegundos. Dado que el temporizador de ACK predeterminado cuenta hasta 200 milisegundos, el paquete ACK de TCP se produce 200 milisegundos después de que la solicitud Notify Change se reciba desde el cliente. Puesto que el cliente espera una respuesta del servidor antes de continuar con la próxima operación de SMB, se produce un retraso mientras el temporizador de ACK con retraso del servidor llega a su umbral. Si realiza una traza de red, observa que no todas las solicitudes Notify Change del cliente experimentan un retraso.

La solicitud Notify Change que no experimenta el retraso viene inmediatamente precedida por otro paquete cuya recepción no se confirma. Por consiguiente, la confirmación no se retrasa en la confirmación del controlador de dominio porque se cumple la primera de las condiciones que se describen al principio de esta sección. Los paquetes anteriores de las solicitudes Notify Change que experimentan el retraso se han confirmado; por consiguiente, el controlador de dominio no responde hasta que el temporizador de ACK con retraso caduca (el valor predeterminado es 200 milisegundos) porque se desencadena la segunda de las condiciones que se describen en esta sección.

No puede modificar la asignación de prioridad a los subprocesos de un controlador de dominio; por consiguiente, debe cambiar el temporizador de ACK con retraso de TCP por un valor menor para evitar que aparezcan los síntomas que se describen en la sección "Síntomas" de este artículo. Después, el servidor envía con más frecuencia los valores de ACK pero a intervalos más cortos.

Para obtener más información sobre el valor del Registro TcpDelAckTicks, consulte el documento técnico (puede estar en inglés) que se encuentra en el sitio Web de Microsoft siguiente:
Detalles de implementación de TCP/IP en Microsoft Windows 2000
Para obtener más información acerca de este problema, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
270926 Cómo solucionar problemas de la copia de archivos de red en Windows 2000
En un cliente que ejecute Windows XP o Windows Server 2003, hay una clave nueva del Registro denominada TcpAckFrequency que controla las ACK de TCP antes de que se llegue al valor del temporizador de ACK con retraso. Para obtener más información al respecto, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
328890 Nueva entrada del Registro para controlar el comportamiento de las confirmaciones (ACK) de TCP en Windows XP y en Windows Server 2003
Para obtener más información al respecto, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
321169 Bajo rendimiento de SMB cuando copia archivos de Windows XP a un controlador de dominio de Windows 2000

Propiedades

Id. de artículo: 321098 - Última revisión: jueves, 11 de mayo de 2006 - Versión: 4.1
La información de este artículo se refiere a:
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Service Pack 3 de Microsoft Windows 2000
  • Service Pack 2 de Microsoft Windows 2000
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Advanced Server
Palabras clave: 
kbprb KB321098

Enviar comentarios

 

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