Círdan: Elevado consumo de CPU generado por los clientes WiFi

per Victor Carceler darrera modificació 2022-03-05T22:19:39+02:00

Círdan es una máquina virtual que ha estado sirviendo como gateway —además de proporcionar servicios básicos como dhcp, dns, ntp, proxy— para las diferentes VLANs del centro.

En un viejo y desactualizado artículo "Esquema sobre la LAN del centro" se puede leer sobre Círdan y la red del centro educativo. Desde entonces han cambiado muchas cosas: se han añadido dos fibras simétricas de 600Mbps para el acceso a internet, se ha montado un router que balancea las dos fibras, ha crecido el número de VLANs y —sobre todo— ha crecido el número de estaciones conectadas a la red inalámbrica que ahora es 192.168.240.0/20.

Durante este tiempo Círdan ha estado desempeñando sus funciones con buen rendimiento, pero recientemente se han comenzado a observar momentos en los que la demanda supera a los recursos disponibles.

Por ejemplo, el uso de CPU de Círdan durante el 16/12/2021 ha sido:

cirdan-cpu-saturada-16.webp

Claramente alrededor de las 12h los dos núcleos de Círdan estaban ocupados atendiendo interrupciones en el estado softirq. Naturalmente cuando se excede la capacidad existente el servicio se deteriora.

Curiosamente este consumo de CPU está provocado por las estaciones que se conectan a nuestra red inalámbrica. Los equipos que están en las aulas generan tráfico con gran ancho de banda de manera sostenida sin elevar el consumo de CPU en Círdan.

Después de reducir al mínimo indispensable las reglas del cortafuegos en Círdan y de desear que Edoras —la máquina física en la que reside Círdan— tuviera una CPU más capaz. Se decide que conviene descargar a Círdan del trabajo de hacer de gateway para las estaciones de la red inalámbrica. Y para esta función se instala un nuevo router que, para salir del paso y por estar disponible, ha sido un pequeño pero capaz Mikrotik hAP ac2.

1470_hi_res.png

Este pequeño dispositivo con una CPU ARM de 32 bits y 128MB de memoria principal no tiene inconveniente en hacer de gateway para la red inalámbrica gracias a que cuenta con hardware especializado —un switch hardware AR8327— que puede manejar todo el tráfico sin cargar la CPU. Las dos radios del equipo están apagadas pues en esta aplicación no son necesarias.

RBD52G-5HacD2HnD-TC_180323.webp

Aunque se trata de una solución provisional que se ha aplicado con urgencia los resultados han sido sorprendentemente buenos.

Se puede observar cómo al entrar en servicio el nuevo router —sobre las 12:20h del día 17/12/2021— la CPU de Círdan se libra de la carga softirq de manera definitiva.

cirdan-cpu-saturada-17.webp

Finalmente el nuevo dispositivo de red también se puede monitorizar con Prometheus gracias al proyecto mikrotik-exporter y como se puede observar el tráfico generado por los clientes inalámbricos no causa ningún consumo de CPU.

mikrotik-prometheus-20.webp