Asignación de memoria para servicios
A medida que su negocio se expande y el número de dispositivos conectados aumenta inevitablemente, también lo hace la demanda de recursos para garantizar el correcto funcionamiento de la plataforma Navixy. Si bien la potencia de la CPU y el espacio en disco se asignan según sea necesario sin limitaciones, la cantidad máxima de RAM que se puede utilizar está estrictamente regulada por las configuraciones del sistema. Por lo tanto, puede llegar un momento en el que constate que la memoria asignada es insuficiente y sea necesario ampliarla. En esta sección, proporcionaremos orientación sobre cómo localizar los archivos de configuración requeridos y realizar los ajustes necesarios para optimizar el rendimiento de la plataforma.
Al modificar las configuraciones que rigen el inicio de los servicios, se requiere la máxima precaución. Edítelas con gran cuidado y atención para garantizar un funcionamiento fluido.
¡Recuerde! Los cambios descuidados en la configuración pueden provocar la total inoperatividad del servicio. Antes de realizar cualquier cambio en la configuración, es aconsejable crear una copia de seguridad. Dado que la configuración es simplemente un archivo de texto, puede almacenarlo de forma segura en un directorio separado o guardar su contenido en otro lugar, garantizando su integridad y evitando cualquier pérdida potencial.
Servicios Java
El backend de la plataforma Navixy consta de tres servicios Java. Las configuraciones predeterminadas asignan las siguientes cantidades de RAM para ellos:
API-server - 1024 Mb
SMS-server - 512 Mb
TCP-server - 1024 Mb
Esta cantidad de memoria es suficiente para un funcionamiento estable de la plataforma con hasta varios miles de dispositivos registrados. Sin embargo, si experimenta inestabilidad en la plataforma, como consultas API lentas, generación de informes prolongada o problemas con el procesamiento de datos de los rastreadores, aumentar la cantidad de memoria asignada puede ser una solución. A continuación veremos dónde encontrar las configuraciones que especifican este valor, dependiendo de cómo esté desplegada la plataforma.
Se recomienda especificar la cantidad de memoria asignada como un múltiplo de 1024. El valor se especifica por servicio por separado.
Linux - servicios systemd
Para las versiones actuales de la plataforma (tanto las instaladas recientemente como aquellas que han recibido las últimas actualizaciones), systemd se utiliza como el gestor de inicio de servicios. Las configuraciones de inicio se encuentran en los directorios de servicio en las siguientes rutas:
/home/java/api-server/api-server.service.env/home/java/sms-server/sms-server.service.env/home/java/tcp-server/tcp-server.service.env
Dentro de cada archivo hay una línea como MAX_HEAP_SIZE="1024m". Especifique la cantidad de memoria que desea asignar al servicio en megabytes. No olvide conservar la letra m que representa megabytes.
Reinicie la plataforma o el servicio específico para aplicar los cambios.
Linux - servicios runit
Si decide no cambiar a systemd al actualizar su plataforma a la versión más reciente (esta opción se ofrece durante las actualizaciones automáticas), o en caso de que esté utilizando una versión antigua de la plataforma Navixy On-premise, los servicios Java utilizan runit como supervisor de servicios. También tiene sus propios archivos de configuración, que se encuentran en las siguientes rutas:
/etc/sv/api-server/run/etc/sv/sms-server/run/etc/sv/tcp-server/run
Entre los parámetros dentro de cada archivo encontrará un valor Xmx - este es la cantidad máxima de memoria que se puede asignar al servicio Java correspondiente. El parámetro completo tiene este aspecto: -Xmx1024m - esto significa que se asignan 1024 Mb de RAM al servicio. Edite este valor y especifique lo necesario, luego guarde el archivo.
Reinicie la plataforma con el restart-navixy comando para aplicar los cambios.
Linux - instancia dockerizada
En la versión dockerizada de la plataforma, la asignación de memoria se establece cuando se despliegan los contenedores, es decir, cuando se ejecuta el docker compose up -d comando. Este es un paso obligatorio al instalar y actualizar una instancia, pero puede realizarse independientemente de estos procesos.
Aunque las configuraciones básicas de la instancia se especifican en el .env archivo, se utiliza un archivo llamado compose.yaml para configurar el funcionamiento de los contenedores: se encuentra en la misma carpeta de trabajo de la instancia que los demás archivos del sistema.
Dentro de este archivo, puede ver las diversas secciones que establecen las opciones de inicio para todos los contenedores. Para cambiar la cantidad de memoria asignada a los contenedores api, sms y tcp necesita encontrar las secciones correspondientes y añadir la opción "MAX_HEAP_SIZE=" a la subsección environment , por ejemplo:
A continuación hay un ejemplo de cómo se hace esto para api-server en una instancia existente:

Guarde el archivo.
Después de aplicar los cambios, ejecute el siguiente comando estando en el directorio de trabajo:
Esto recreará los contenedores teniendo en cuenta las nuevas configuraciones.
Windows - servicios wrapper
Los servicios Java no están diseñados para ejecutarse en Windows por defecto, por lo que se utiliza software de terceros para habilitarlos. Se llama YAJSW (Yet Another Java Service Wrapper) y está diseñado para convertir archivos ejecutables jar normales en servicios de Windows. Este software se incluye en el paquete de distribución de la plataforma Navixy y se configura durante la instalación inicial.
Wrapper no tiene un directorio de instalación estándar y puede ubicarse en cualquier lugar, pero normalmente se coloca en C:\java\wrapper carpeta. En su interior encontrará la carpeta \conf que contiene los archivos de configuración para los tres servicios:
wrapper.api-server.confwrapper.sms-server.confwrapper.tcp-server.conf
Al final de cada una de las configuraciones se encuentran los ajustes de inicio del servicio, e incluyen una línea como:
El valor del parámetro -Xmx1024m significa que se asignan 1024 Mb de RAM al servicio. Edite este valor y especifique la cantidad de RAM requerida, conservando la m letra, luego guarde el archivo.
Reinicie el/los servicio(s) para aplicar los cambios.
MySQL
La base de datos es el servicio que más consume recursos dentro de la plataforma. Cuando un gran número de dispositivos ejerce presión sobre una memoria limitada, la base de datos puede tener dificultades para manejar todas las solicitudes entrantes. En consecuencia, esto puede resultar en que la plataforma Navixy funcione de forma lenta e inestable. Recomendamos encarecidamente supervisar el rendimiento de la base de datos y, si es necesario, aumentar la capacidad de RAM del servidor.
La cantidad de RAM asignada a la base de datos es un valor estático que se especifica en la configuración de MySQL. Generalmente se recomienda mantener este valor en el 70% de la cantidad total de RAM del servidor. Por lo tanto, si aumenta la cantidad total de RAM para mejorar el rendimiento de la base de datos, debe cambiar el valor en la configuración después de ello.
El archivo de configuración de MySQL se encuentra en la siguiente ruta:
Linux:
/etc/mysql/mysql.conf.d/mysqld.cnfWindows:
C:\ProgramData\MySQL\MySQL Server 8\my.ini
En la sección [mysqld] de esta configuración, encontrará el parámetro innodb_buffer_pool_size - que establece la cantidad de memoria asignada para la base de datos. Si el tamaño actual es insuficiente, cambie el parámetro en consecuencia (asegúrese de conservar la unidad de medida - G para gigabytes). Guarde el archivo y reinicie MySQL.
Última actualización
¿Te fue útil?