¿Por qué esta conexión de red es tan lenta?

11

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?

Paul Keeble
fuente
serverfault es probablemente el mejor lugar para hacer tales preguntas.
Maciej Piechotka
Pruebe esta pregunta de ServerFault para conocer técnicas generales útiles para solucionar problemas de una conexión de red lenta.
Si nada cambió, culpe al desgaste (cables).
Mel

Respuestas:

6

Algunas cosas que debe considerar verificar:

  1. Duplex: si un lado piensa que el enlace es full duplex y el otro lado piensa que el enlace es half duplex, espere maldad.
  2. Interruptor defectuoso? Bypass it / them.
  3. Marcos jumbo. La MTU de 9000 bytes disminuye la sobrecarga, lo que debería aumentar el rendimiento (perdiendo un poco de latencia). Sin embargo, parece que su problema es tan grave que esto no ayudará.
  4. Características TCP: ECN, SACK, control de congestión alg
  5. TCP Enviar / Recibir tamaños de ventana ( detalles para Linux )

netperf es excelente para solucionar problemas de rendimiento de la red. Pero netcat no está nada mal.

Brian Cain
fuente
6

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 -zes bueno para permitir la compresión, pero tiene un costo de CPU, que afecta severamente la velocidad general de la transferencia. Si se usa SSHcon rsync, 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.

Aaron Toponce
fuente
2
  1. Intenta netstat -ibuscar errores de rx / tx.
  2. Intente netstat -sbuscar problemas de TCP: compare los valores antes y después de la copia del archivo y busque picos grandes en los reinicios o retransmisiones.
Rafael Ferreira
fuente
Por desgracia, no hay errores de TX / RX en absoluto después de 100 MB y el número de reinicios ha sido consistentemente 4 desde el principio hasta el final de la prueba
Paul Keeble
0

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.

pmalmsten
fuente
En el momento de la prueba, estos eran los únicos dos dispositivos en la red, nada más estaba encendido.
Paul Keeble
0

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.

Stephen Jazdzewski
fuente