¿Por qué mi red se ralentizaría?

1

La red en mi trabajo tiene alrededor de 40 computadoras y algunas impresoras. Cuando haya mucha gente trabajando, la red será lenta.
Puedo probar el ping entre mi computadora y el enrutador y seguirá aumentando, a veces hasta el punto de que se agota el tiempo de espera.
El enrutador que estamos utilizando está ejecutando Ubuntu en un procesador atómico y tiene 4 gb de ram.

Cuando la red se desacelera, el proceso Ksoftirqutilizará la mayoría, si no toda, la potencia de procesamiento. He descubierto que Ksoftirqes un proceso que maneja las solicitudes irq . Además, cuando la red se ralentiza, capturé paquetes del enrutador y utilicé tshark y lo miré con cables de mi computadora portátil. Con la captura se muestran muchos paquetes con TCP Dup ACK y TCP Retransmissions. Los destinos de las retransmisiones TCP Dup y TCP son para la mayoría de las computadoras en la red, pero hay algunas que son mucho más que otras.

¿Por qué podría ser causado este problema?

monkthemighty
fuente
1
Los duplicados y las retransmisiones son un signo típico de tiempos de espera debido a la congestión de la red, pero pueden significar otras cosas. Los problemas de rendimiento de la red no siempre son tan simples como mirar un pcap. ¿Cómo es su flujo de trabajo? Y para la configuración, ¿qué protocolo estás usando? ¿Cuál es la tasa de enlace de los clientes? ¿Cuál es el mtu en los clientes y el enrutador, cuánto duran los cables, la cantidad de saltos entre clientes? Hay mucho más por aclarar, pero eso es un comienzo.
MaQleod
no parece que se use mucho ancho de banda cuando miro un iftop. Casi todo el tráfico es a través de la web, pero hay mucho tráfico en el que usamos un vpn con ipsec.
monkthemighty

Respuestas:

3

Es muy probable que la tarjeta Ethernet de su enrutador sea un asco o que no esté configurada correctamente para este tipo de uso.

Las tarjetas Gigabit Ethernet modernas de clase servidor (o enrutador) brindan servicios como interrupción de coalescencia y descarga de recepción grande (LRO) para evitar que el procesador host se sobrecargue con interrupciones por paquete. Otras características de descarga, como la Transmitir Segmentación de Descarga (TSO) y la suma de comprobación de hardware, también ayudan a mantener el procesador host menos ocupado, pero no necesariamente están relacionadas con las interrupciones.

Asegúrese de que su adaptador Ethernet sea capaz de estas cosas y de que las tenga totalmente habilitadas. Si no es capaz de interrumpir la fusión y LRO, considere actualizar a una buena NIC Ethernet de clase de servidor.

Spiff
fuente
Busqué mi nic y es un RTL8111 / 8168B que lo único que pude encontrar al respecto es que se usa en computadoras portátiles y otras computadoras normales. Además, cuando ejecuté la red lshw -class para descubrir el nic, descubrí que una de las tarjetas dice que su tamaño es de 100 MB / sy la otra es de 1 GB / s, pero la capacidad es de 1 GB / s en ambas. ¿Podría ser esto un problema o debería obtener una mejor tarjeta de red?
monkthemighty
@monkthemighty Si uno de ellos está conectado al módem de banda ancha del ISP de su empresa, podría tener sentido que sea solo de 100 megabits en lugar de 1 gigabit. Pero Realtek no es conocido por estar en el negocio de hacer chips de clase empresarial; son básicamente un proveedor sin nombre centrado en cosas de ganga. Broadcom, Marvell e Intel son algunos de los proveedores conocidos por fabricar conjuntos de chips Ethernet de clase empresarial (aunque también tienen cosas de gama baja).
Spiff
@monkthemighty Por otra parte, eso es tangencial al punto de mi Respuesta, que es que debes mirar Interrupt Coalescing y LRO. Si el chipset Realtek tiene esas características de descarga que mencioné, asegúrese de que estén activadas. Si no tiene esas características, probablemente necesite comprar una tarjeta que sí las tenga. Ha encontrado una indicación de que su casilla se ve afectada por interrupciones mientras procesa mucho tráfico. Esa es una buena señal de que necesita una NIC que reduzca la cantidad de interrupciones que su procesador tiene que reparar.
Spiff
¿Cómo sabría si mi nic admite interrupción de fusión y LRO?
monkthemighty
@monkthemighty Verifique con el proveedor de chips o placas, o consulte con quien tenga el controlador que está utilizando. No soy lo suficientemente experto en Linux como para aconsejarle sobre cómo usar las herramientas de Linux para verificar eso. Puede valer la pena hacer una pregunta por separado aquí en Super User.
Spiff
2

La respuesta corta a su pregunta es sí, estos son signos de un enrutador que no puede manejar la carga que se le pide que maneje. La CPU pasa la mayor parte de su tiempo averiguando cómo manejar los paquetes que ha recibido y las operaciones de nivel superior se están muriendo de hambre.

La solución obvia es reemplazar el enrutador con uno que use hardware más capaz. Sin embargo, es posible optimizar la configuración del enrutador.

Por ejemplo, supongamos que tiene un montón de puertos que están bloqueados. Si prueba cada puerto bloqueado con una regla, entonces cada una de esas reglas tendrá que probar mucho tráfico. Si el 95% de su tráfico es hacia el puerto 80, agregar una regla de "permitir" en la parte superior permitirá que la mayoría del tráfico omita la mayoría de las reglas. Del mismo modo, agregar una regla de "aceptar si es parte de una conexión establecida" en la parte superior si la cadena de entrada puede ayudar.

El enrutador también puede tener poca memoria o quedarse sin ranuras de conexión . Cuando el enrutador está fuera de las ranuras de conexión, se negará a establecer nuevas conexiones. Cuando las cosas están mal, mira si net.netfilter.nf_conntrack_countestá cerca net.netfilter.nf_conntrack_max. Si es así, y tiene memoria, aumente el límite. Si no tiene memoria, puede reducir un poco los tiempos de espera.

David Schwartz
fuente
0

Si está utilizando un enrutador Wifi, entonces es probable que esté sufriendo una acumulación de búfer . Esta es una condición temporal que se corrige al apagar y encender el enrutador.

Madriguera
fuente