Artículo
· 13 mayo, 2025 Lectura de 2 min

Contenedor de IRIS con una huella mínima

A veces, los clientes necesitan una instancia pequeña de IRIS para hacer algo en la nube y luego apagarla, o necesitan cientos de contenedores (es decir, uno por usuario final o uno por interfaz) con cargas de trabajo pequeñas. Este ejercicio surgió para ver cuán pequeña podría ser una instancia de IRIS. Para este ejercicio, nos centramos en cuál es la menor cantidad de memoria que podemos configurar para una instancia de IRIS. ¿Conocéis todos los parámetros que afectan la memoria asignada por IRIS?

Configuración de memoria

Estos son los distintos bloques que afectan la asignación de memoria por parte de IRIS y sus parámetros correspondientes:

  • Buffers globales (32 MB) => El mínimo parece ser 32 MB para bases de datos de 8k
  • Buffers de rutinas (26 MB) => El mínimo teórico según la documentación es 430 buffers x 64k por buffer, lo que equivale a aproximadamente 26 MB, y en la práctica también es 26 MB
  • Buffers de journaling (16 MB) => En teoría y en la práctica, el mínimo para un sistema Unicode es 16 MB (8 MB para sistemas de 8 bits)
  • Descriptores de buffer (3 MB) => Parece ser de 3 MB, no se puede ajustar
  • gmheap (16 MB) => El mínimo es 256 páginas x 64k por página = 16 MB (configurado en bytes en el CPF = 16384)
  • ECP (1 MB) => Hay un par de parámetros en el CPF que controlan esto: MaxServerConn y MaxServers. Incluso con MaxServerConn=0 y MaxServers=0, el mínimo sigue siendo 1 MB porque IRIS asigna memoria a esas estructuras independientemente de si usas ECP o no. Con MaxServerConn=1 y MaxServers=2, el valor predeterminado es 5 MB
  • Varios (15 MB) => Según mis pruebas, el mínimo parece ser 15 MB. No pude reducirlo más.

Con todos estos ajustes configurados de esta manera, los parámetros del CPF se verían de la siguiente forma:

globals=0,0,32,0,0,0
routines=0,0,0,0,0,26
jrnbufs=16
gmheap=16384
MaxServerConn=0
MaxServers=0

Entonces, si configuras IRIS con estos parámetros (yo usé IRIS 2024.1) en el archivo CPF, se puede esperar que el total mínimo de memoria asignada por IRIS al iniciar (excluyendo los procesos de usuario) sea de 111 MB. Podéis ver la memoria asignada por IRIS en el archivo messages.log.

 

 

Bueno, lo sé, debe haber algún redondeo involucrado porque si sumas todos los valores individuales obtienes 109 MB, pero en el archivo messages.log se informa como 111 MB.

Durante este proceso, también descubrimos que los contenedores de IRIS no podían asignar páginas grandes (Huge Pages), lo cual fue reportado y corregido en versiones posteriores por InterSystems.

Por cierto, este artículo también puede servir como una guía general para aprender sobre los diferentes parámetros de memoria que se pueden ajustar dentro de IRIS para obtener un mejor rendimiento.

¡Espero que os haya gustado!

Comentarios (0)1
Inicie sesión o regístrese para continuar