¿Cuál es el rendimiento típico de Windows File Sharing (SMB) en una red ethernet gigabit?

10

Recientemente configuré el intercambio de archivos de Windows a través de una red ethernet gigabit (no estoy usando tramas gigantes) con un servidor Samba y un cliente Windows Vista. He hecho algunas copias de archivos, pero el rendimiento máximo que estoy viendo es de 20 MB / s (megabytes, no megabits), que es aproximadamente el 15% del máximo teórico de 125 MB / s para la red. El servidor tiene una matriz RAID que puede administrar aproximadamente 75 MB / s (el cuello de botella es el bus PCI), y el cliente puede administrar aproximadamente 40 MB / s en una copia de disco a disco.

Debo agregar que no había otro tráfico en la red en ese momento.

Entiendo que nunca obtendré el máximo teórico, pero no pensé que sería tan malo.

¿Cuál es el rendimiento típico de Windows File Sharing (SMB) en una red ethernet gigabit?

Puntos de bonificación: ¿qué puedo ajustar (además de usar marcos jumbo) para hacer esto más rápido?

Kaypro II
fuente
2
He solucionado los problemas de rendimiento en mi red: eran una combinación de una NIC incorporada deficiente en el servidor y controladores NIC antiguos en el cliente. Ahora veo entre 50 MB / sy 80 MB / s en algunas copias masivas que hice para probar. Sin embargo, las transferencias parecen detenerse inesperadamente durante unos segundos, de vez en cuando.
Kaypro II
1
Otra causa de mi pobre rendimiento de red fue que simplemente ejecutando Virtual PC (sin necesariamente tener imágenes en ejecución), algo parece acelerar mi NIC a ~ 100Mbps en mi máquina Vista.
Kaypro II

Respuestas:

8

La calidad de sus tarjetas de red, conmutadores y cableado puede tener un efecto. Puede valer la pena buscar revisiones de las NIC y los conmutadores que está utilizando para ver si otras personas informan que no funcionan demasiado bien. Estoy seguro de que las NIC integradas en el tablero son peores de las transferencias de Gbit, aunque en mi experiencia esto no parece hacer mucha, si alguna, diferencia en mi entorno.

Como punto de referencia, acabo de instalar un nuevo conmutador Gbit en nuestra oficina (reemplazando los antiguos conmutadores de 100Mbit) y grandes transferencias SMB se ejecutan a cerca de (pero menos de) 30Mbyte / seg entre cada combinación de máquinas que probé. Acabo de hacer una prueba rápida con netcat entre dos de las máquinas y obtuve resultados similares, así que no creo que SMB sea el cuello de botella. Las dos máquinas que acabo de probar tienen dos interruptores entre ellos que pueden tener un efecto, pero supongo que ese efecto es mínimo dado lo cerca que se transfieren las cifras de una SMB a una máquina en el mismo interruptor.

La mejor velocidad de transferencia que he visto en una red Gbit fue un poco menos de 50Mbyte / seg en su máxima velocidad. Esto fue mientras se transfería una imagen de unidad de una máquina a un archivo en la otra (con el propósito de convertir a una unidad virtual VMWare. En ese caso, las dos máquinas se conectaron a través de un cable cruzado corto en lugar de a través de un interruptor. Coincidentemente una de las máquinas en cuestión fue una de las máquinas que acabo de probar y obtuve ~ 29Mbyte / seg. El culpable más probable del cuello de botella principal en mi caso es probablemente el cableado de 8 años en el edificio que se pudo haber hecho Una prueba rápida (e igualmente poco científica) en mi pequeña red doméstica ve tasas de transferencia más como 35Mbyte / seg copiar un archivo de un recurso compartido Samba a un cuadro de Windows y 25Mbyte / seg en la otra dirección (I '

Los marcos gigantes van a marcar la diferencia para las transferencias masivas, por lo que te sugiero que lo pruebes si todo tu kit los admite correctamente.

Para abreviar una larga historia: según mi experiencia anecdótica, sus 20Mbyte / seg son un poco lentos, pero no masivamente. Todas mis instalaciones de Windows y Samba están prácticamente sin ajustar, por lo que sospecho que su hardware / cableado es la diferencia entre lo que veo y lo que ve.

Editar

Por supuesto, cinco años después de esta respuesta, el hardware y el software han avanzado. A menudo veo más de 90 transferencias MiB / seg en máquinas con redes Gbit incluso con un kit barato. Mi servidor de medios / copia de seguridad / otro servidor parece estar limitado a un poco más de 60 por volumen para las transferencias, pero eso parece estar relacionado con la CPU en un solo núcleo del hardware de la caja.

David Spillett
fuente
El cableado no debería ser un problema para mí, la porción de gigabit de mi red es completamente CAT6. No puedo usar tramas gigantes porque mi red (doméstica) es heterogénea, tengo wifi y un segmento de 100Mbit, y entiendo que las tramas gigantes son solo de gigabits. Sin embargo, si pudiera limitar las tramas gigantes a ciertos pares de hosts, eso podría funcionar. Ese es un buen punto sobre el hardware. Todo el mío es de grado de consumo; Tendré que investigar eso. Otro pensamiento que tuve es cómo las NIC integradas están conectadas puede ser un problema. Si uno está en el bus PCI, eso podría ser un factor.
Kaypro II
1
¿no quieres decir "tus 20Mbyte / seg son un poco lentos, pero no masivamente" (al final)? de lo contrario +1, buena redacción.
quack quijote
Buena captura ~ quack, debidamente editado.
David Spillett el
arrrgh. lamentablemente no puedo editar los comentarios o dejaría de comer al final ...
charlatán quijote
4

Ahh ... aquí es donde es importante que un servidor entienda lo que hay debajo del capó. Como esto tiene dos años, creo que ya lo ha resuelto. Sin embargo, para la posteridad o cualquier persona con un problema similar, probablemente se encontró con esto

(Tamaño de ventana TCP * 8bits / RTT en milisegundos) = Máximo rendimiento de TCP en bps

Si bien es posible que tenga una red Gigabit, es probable que un solo flujo TCP no pueda alcanzar ese nivel.

Aquí hay una tabla simple asumiendo que tiene el tamaño predeterminado de la ventana 65535Byte TCP en Vista

RTT 10 ms => rendimiento de TCP = 52428000 bps = 52 Mbps

RTT 20 ms => rendimiento de TCP = 26214000 bps = 26 Mbps

RTT 50 ms => rendimiento de TCP = 10485600 bps = 10Mbps

RTT 100 ms => rendimiento de TCP = 5242800 bps = 5.2Mbps

RTT 150 ms => rendimiento TCP = 3495200 bps = 4.3Mbps

RTT 200 ms => rendimiento TCP = 2621400 bps = 2.5Mbps

RTT 300 ms => rendimiento de TCP = 1747600 bps = 1.7Mbps

RTT 500 ms => rendimiento de TCP = 1048560 bps = 1 Mbps

A 20Mbytes / seg o 160Mbits / seg, es probable que su latencia de ida y vuelta sea del orden de aproximadamente 3 milisegundos. La única otra forma de acelerar eso es mediante el uso de optimizadores de TCP que eliminen la duplicación a través del cable o unan fragmentos en paquetes más grandes. En una LAN que probablemente no te va a ganar mucho por el gasto. Si está utilizando equipos SoHo como Linksys o Netgear, su latencia probablemente se deba a la falta de buffers compartidos en el switch. Si se trata de un conmutador más grande como un puerto de 24, intente asegurarse de que los dos dispositivos estén conectados al mismo ASIC. Esto ayudará a retrasar la serialización, pero no mucho. Si pudiera bajarlo a 2 ms, obtendría un impulso de hasta 31-32Mbytes / seg. Si están en dos conmutadores diferentes, no hay mucho que pueda hacer sin nuevo hardware.

Scott-CCIE24038
fuente
2

No es que esto lo ayude en este caso, pero Vista / Windows 7 hablando con un servidor Windows 2008 utilizará SMB2, que es mucho más eficiente que SMB simple y utilizará mucho más del ancho de banda de la red. Consulte las mejoras de rendimiento del servidor de archivos con el protocolo SMB2 en Windows Server 2008 y el rendimiento mejorado de la red con Microsoft Windows Vista y Windows Server 2008 para obtener más información.

Se está trabajando en SMB2 en Samba 4 pero parece que se está exportando a Samba 3.5 .

Sim
fuente