Tengo algunos problemas con la velocidad del rendimiento de la red en un servidor Linux que ejecuta Ubuntu 9.10. Las velocidades de transferencia en todos los tipos de tráfico son de alrededor de 1,5 MB / s en una conexión Ethernet por cable de 1000 mb / s. Este servidor ha logrado 55MB / s sobre samba en el pasado reciente. No he cambiado el hardware o la configuración de la red. Realizo actualizaciones de forma regular y la última y mejor de los repositorios de Ubuntu se ejecuta en esta máquina.
Configuración de hardware
PC de escritorio con Windows - 1000 switch - 1000 switch - servidor Linux
Todos los interruptores son netgear, y todos muestran una luz verde para sus conexiones, lo que significa que la conexión es de 1000mbit / s. Las luces son amarillas cuando la conexión es de solo 100mbit / s. Otra información de diagnóstico:
root@server:~# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0c:6e:3e:ae:36
inet addr:192.168.1.30 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:6eff:fe3e:ae36/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:28678 errors:0 dropped:0 overruns:0 frame:0
TX packets:73531 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2109780 (2.1 MB) TX bytes:111039729 (111.0 MB)
Interrupt:22
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:113 errors:0 dropped:0 overruns:0 frame:0
TX packets:113 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:23469 (23.4 KB) TX bytes:23469 (23.4 KB)
root@server:~# ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pg
Wake-on: g
Current message level: 0x00000037 (55)
Link detected: yes
root@server:~# mii-tool
eth0: negotiated 1000baseT-FD flow-control, link ok
El servidor cree que tiene una conexión de 1000mbit / s. He probado la velocidad de transferencia copiando archivos usando Samba. También he usado netcat (nc target 10000 <aBigFile) en el servidor para transferir a Windows (nc -l -p 10000) y vi niveles similares de bajo rendimiento.
Probé la velocidad de los discos duros usando hdparm y obtuve:
root@server:~# hdparm -tT /dev/md0
/dev/md0:
Timing cached reads: 1436 MB in 2.00 seconds = 718.01 MB/sec
Timing buffered disk reads: 444 MB in 3.02 seconds = 147.24 MB/sec
Leer el mismo archivo para transferir usando DD produjo lo siguiente:
paul@server:/home/share/Series/New$ dd if=aBigFile of=/dev/null
3200369+1 records in
3200369+1 records out
1638589012 bytes (1.6 GB) copied, 12.7091 s, 129 MB/s
Estoy perplejo ¿Qué podría estar causando el bajo rendimiento de la red, que es 2 órdenes de magnitud inferior a la capacidad de la red?
fuente
Respuestas:
Algunas cosas que debe considerar verificar:
netperf es excelente para solucionar problemas de rendimiento de la red. Pero netcat no está nada mal.
fuente
En mi experiencia profesional, he luchado para obtener un buen rendimiento de red sólido con Samba en GNU / Linux. Mencionaste que has alcanzado velocidades de 55 MBps con él, lo cual creo, así que supongo que definitivamente hay algo más en juego.
Sin embargo, ¿has probado NFS, FTP y SCP? ¿Son consistentes los problemas de ancho de banda en los diferentes protocolos? Si es así, es probable que se reduzca a la conexión física. Si obtiene resultados inconsistentes, entonces es probable que sea un problema de software.
Además de probar los otros protocolos, ¿está utilizando cifrado en la transferencia? Por ejemplo, el uso
rsync -z
es bueno para permitir la compresión, pero tiene un costo de CPU, que afecta severamente la velocidad general de la transferencia. Si se usaSSH
conrsync
, entonces tiene encriptación además de la compresión, y su CPU estará bajo un poco de estrés, causando severas penalizaciones de velocidad.fuente
netstat -i
buscar errores de rx / tx.netstat -s
buscar problemas de TCP: compare los valores antes y después de la copia del archivo y busque picos grandes en los reinicios o retransmisiones.fuente
Puede verificar la congestión de su red; ¿Quizás otros dispositivos consuman todo su ancho de banda?
Más allá de eso, tal vez algo esté mal con su interfaz de red y / o su controlador. Bastante raro.
fuente
Si es posible, para eliminar la mayor duda de que realmente es un problema de sistema operativo / controlador / tarjeta, conecte las computadoras mediante un cable cruzado. Esto eliminará el interruptor y otros posibles problemas de red de su ecuación.
fuente