Quiero ajustar la pila TCP de Windows 7 para la velocidad en un entorno LAN.
Un poco de información de fondo: tengo un Citrix XenServer configurado con Windows 2008R2, Windows 7 y Debian Lenny con el kernel Citrix, las máquinas Windows tienen herramientas instaladas, el iperf
proceso del servidor se ejecuta en un host diferente, también Debian Lenny. Los servidores están inactivos, las pruebas se repitieron varias veces para confirmar los resultados.
Si bien las pruebas con iperf
2008R2 pueden alcanzar alrededor de 600-700Mbps sin ningún ajuste, no puedo encontrar ninguna guía o conjunto de parámetros que haga que Windows 7 logre algo por encima de 150Mbps sin cambiar el tamaño de la ventana TCP utilizando el -w
parámetro iperf
.
He intentado utilizar netsh
autotuining
a disabled
, experimental
, normal
y highlyrestricted
- sin cambio. Cambiar congestionprovider
no hace nada, solo como rss
y chimney
.
Establecer todas las configuraciones disponibles en los mismos valores que en Windows 2008R2 host no ayuda.
Para resumir:
- Configuración predeterminada de Windows 2008R2: 600-700 Mbps
- Debian, configuración predeterminada: 600 Mbps
- Configuración predeterminada de Windows 7: 120 Mbps
- Windows 7 predeterminado,
iperf -w 65536
400-500Mbps
Si bien los 400 Mbps de rendimiento que faltan culpo a la horrible NIC Realtek en el host XenServer (puedo hacer ~ 980 Mbps desde mi computadora portátil al servidor iperf) no explica por qué Windows 7 no puede lograr un buen rendimiento sin ajustar manualmente el tamaño de la ventana en El nivel de aplicación.
Entonces, ¿cómo ajustar Windows 7?
fuente
Podría ser un controlador de red diferente en Windows 2008R2 frente a Windows 7. Además, ¿xenserver siempre proporciona el mismo nic virtual a Windows 2008R2 y Windows 7? Porque si es diferente, se cargará un controlador diferente.
Puede haber algunas diferencias de rendimiento.
EDITAR: Acabo de recordar que Windows 7 por defecto tiene buffers de envío / recepción muy pequeños. En algunas aplicaciones que estaba desarrollando descubrí que bajo Windows 7 era algo patético como 8kB. Bajo ubuntu linux es de alrededor de 120kB. Puede leer en alguna parte que el límite es 64kB. Esto es realmente incorrecto para versiones posteriores de Windows. He descubierto que puede configurarse incluso a 1 MB o más. Aunque se notará un pequeño aumento de rendimiento cuando es tan grande.
Este enlace proporciona algunos parámetros de ajuste tcp en el registro que se aplican a todo el sistema. Tenga en cuenta que muchas de esas opciones pueden ser anuladas por las propias aplicaciones.
http://www.psc.edu/networking/projects/tcptune/ http://www.psc.edu/networking/projects/tcptune/OStune/winxp/winxp_stepbystep.html
Intente aumentar el tamaño de la ventana y enviar / recibir buffers. Esperemos que esas configuraciones de registro en el enlace aún se apliquen en Windows 7.
fuente
MTU? http://networking.nitecruzr.net/2007/11/setting-mtu-in-windows-vista.html
fuente
El ajuste automático de TCP (que ya se descartó), MTU que ya se ha abordado y MMCS (programación de clases multimedia) suelen ser las grandes diferencias. Dado que MMCS aún no se ha abordado, intente desactivarlo.
Asegúrese de que la escala automática de su ventana tcp esté desactivada si está a la velocidad de la LAN o cerca de ella.
Las instrucciones están disponibles aquí: http://smallvoid.com/article/winnt-services-mmcss.html
fuente
No debería ver el controlador Realtek dentro de Windows como una máquina virtual en Citrix XenServer. Si lo hace, eso significa que no tiene XenTools instalado. La NIC Realtek que ve, es una emulada proporcionada por el servicio QEMU dentro de Dom 0 (dominio 0). Después de instalar el sistema operativo Windows, antes de hacer cualquier otra cosa, especialmente la instalación de la aplicación, debe instalar XenTools. Además, la velocidad se codifica después de instalar XenTools (como se indica en la Guía del usuario de VM), ya que no hay límite de velocidad en un dispositivo virtual.
fuente