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 Ksoftirq
utilizará la mayoría, si no toda, la potencia de procesamiento. He descubierto que Ksoftirq
es 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?
fuente
Respuestas:
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.
fuente
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_count
está cercanet.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.fuente
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.
fuente