Este artículo ayudará a los usuarios a diagnosticar un controlador que se ejecuta bajo una gran carga, así como a describir las modificaciones que se pueden realizar para obtener un rendimiento óptimo.

Tabla de contenido

  1. Introducción
  2. Síntoma: uso elevado de la CPU
  3. Síntoma: Pulsos perdidoso lento asignacion
  4. Ajuste de conexión de base de datos
  5. Conclusiones

Introducción

Hay algunas cosas que se deben tener en cuenta al administrar grandes instalaciones de UniFi con cientos de dispositivos y varios sitios conectados a un solo Controlador UniFi. Un controlador que se ejecute con una carga tan alta puede encontrar algunos problemas si se configura de la misma manera que un controlador que gestiona una carga mucho más ligera. Hay algunos síntomas que se pueden reconocer, diagnosticar y trabajar para mejorar el rendimiento del controlador.

Advertencia: antes de continuar con las configuraciones descritas a continuación, asegúrese de crear copias de seguridad de las configuraciones de su máquina y controlador. Un error tipográfico podría romper el sistema.

Sintoma: Uso elevado del CPU

Una de las métricas más importantes para monitorear es el uso de la CPU en su controlador UniFi. El uso elevado de CPU es la primera indicación de que hay un problema. Desafortunadamente, no hay una solución mágica para esto y simplemente aumentar la CPU no es necesariamente la respuesta.

Antes de aumentar el tamaño de su cuadro, intente aumentar las opciones `XMX` y` XMS`. Por defecto, un controlador UniFi tiene estos configurados en 1 GB. Se pueden aumentar haciendo las siguientes entradas en el archivo system.properties.

unifi.xmx=2048
unifi.xms=2048

Los cambios anteriores aumentarían la memoria que el controlador UniFi puede consumir de 1 GB a 2 GB. La razón por la que no tener suficiente memoria podría causar un alto uso de la CPU es porque la Máquina Virtual Java estaría gastando demasiados ciclos de CPU recolectando basura para mantenerse dentro de los 1 GB de memoria asignados al controlador. Por lo tanto, antes de pasar a una máquina con más CPU, se recomienda maximizar la memoria disponible en esa máquina con la configuración anterior. Luego observe si el uso de la CPU disminuye.

Sin embargo, si el uso elevado de la CPU continúa después de que la memoria se incrementa, puede ser necesaria una máquina más grande con más núcleos de CPU y más memoria para manejar la carga de trabajo.

Síntoma: Pulso perdido o lenta asignación

Sin importar el número, todos los dispositivos intentarán informar al controlador. De forma predeterminada, el controlador puede manejar 200 conexiones simultáneas desde dispositivos, por lo que los dispositivos con pulsos perdidos no serán un problema a menos que un único administrador de administración de dispositivos. Si solo está gestionando unos pocos cientos de dispositivos, se puede probar el siguiente ajuste, pero puede que no tenga los resultados deseados.

La cantidad de mensajes informados que se puede procesar se puede establecer en el sistema. Propiedades ajustando el siguiente:

inform.num_thread=200
inform.max_keep_alive_requests=100

El valor predeterminado es 200 y max_keep_alive_requests siempre debe ser menor que num_thread. Intente ajustar desde allí: se debe ver un aumento de la estabilidad del dispositivo y empujar la configuración a dispositivos que se vuelven aún más estables.

Ajuste de conexión de base de datos

Cuando se ejecuta una instalación grande de UniFi, se puede ejecutar un clúster de mongo externo para poder escalar la base de datos independientemente de la aplicación del Controlador UniFi. La discusión sobre eso se puede encontrar aquí en nuestro foro de la comunidad.

Si se ve un uso elevado de la CPU en el proceso de mongo, puede indicar la necesidad de una caja más grande o la necesidad de separar el proceso de mongo como se mencionó anteriormente. Una vez hecho esto, se puede ajustar lo siguiente para ver si da como resultado un mejor rendimiento de la aplicación.

db.mongo.connections_per_host=100
db.mongo.threads_multiplier=5

Esto da como resultado 500 hilos que pueden estar esperando una conexión mongo. Así que tenga en cuenta que un mayor número de sub-procesos puede significar un mayor uso de CPU porque la CPU tiene que cambiar de contexto entre sub-procesos. Puede permitir un mayor rendimiento de DB, pero solo si el proceso de mongo puede consumir más CPU para atender las solicitudes más rápidamente.

Conclusiones

La mejor forma de aumentar el rendimiento y proporcionar estabilidad a las instalaciones grandes es garantizar que supervise los recursos de su sistema. Más allá de eso, prácticas como la descarga de la carga de trabajo de la base de datos y el aumento de la memoria pueden permitir que el controlador UniFi sirva a más clientes y dispositivos. Esto debería reflejarse en el uso de los recursos y el rendimiento de la interfaz de usuario del controlador UniFi.

UniFi ahora ofrece una solución de gestión que puede encargarse de todo esto y más, aquí encontrará más información sobre UniFi Elite.

¿Encontró su respuesta?