Contenedor Gladys lleno / memoria llena por la noche

Porque estoy sacando un gráfico en tiempo real de la potencia VA ^^

Pero la reducción a un payload no parece haber cambiado el problema de memoria.

Voy a seguir investigando.

¿Podrías probar a cambiar a una frecuencia más baja, solo para ver si ese es el problema? ¡Cada segundo me parece muy agresivo! ^^

Suceden muchas cosas cuando se recibe un valor de sensor, en particular Gladys verifica si alguna escena debe activarse. Dado el número de valores que recibes por cada payload cada segundo, creo que es mucho para Gladys.

Por mi parte, también tuve este problema en la noche del sábado al domingo a las 3 de la madrugada.
Tuve un pico de consumo de la RAM hasta el máximo y luego se bloqueó.
No tengo más detalles, pero si vuelve a ocurrir, investigaré más sobre el tema.

Acabo de cambiar a 60 segundos para ver si es mejor

El problema sigue presente.

Por lo tanto, no proviene de las solicitudes que realiza mi módulo Linky.
Voy a ver cómo puedo investigar un poco más a nivel de los procesos.

Hay que ver si no tienes otro dispositivo muy agresivo.

De hecho, tengo detectores de movimiento que envían informes bastante frecuentes.

Voy a ver para limitar todo lo que aparece a menudo en los registros.

Bueno, he investigado más a fondo en la memoria del contenedor.

Después de unos días de informes, he podido identificar que la memoria está saturada por DuckDB o al menos por una consulta a DuckDB.
He lanzado un script de análisis de cada consulta Node.js DuckDB para identificar qué consulta a DuckDB causa el problema.
Seguramente relacionado con el hecho de que mi base de datos es bastante grande.

He hecho una gran limpieza en las métricas que no necesitaban historial para aligerar la base.
Desde entonces, parece mucho más estable, pero entonces corro el riesgo de no saber cuál era el problema antes ^^

Si el aumento de memoria no se repite, voy a restaurar mi base antes de la limpieza para reproducir el problema.

Probablemente sea la consulta de visualización gráfica. Si en algún momento tienes la base de datos con el problema, no dudes en exportarla y enviármela para que pueda hacer pruebas con ella.

Sí, estoy esperando a que el problema se reproduzca en cuanto al gran pico de memoria.

También he notado que durante una copia de seguridad de Gateway, la memoria aumenta (lo cual es completamente normal), pero no se libera después de que finaliza la copia de seguridad.

Ejemplo de copia de seguridad de esta mañana:

2026-01-19T03:51:19+0100 <info> gateway.checkIfBackupNeeded.js:44 (Timeout._onTimeout) Starting backup!
2026-01-19T03:51:19+0100 <info> system.isDocker.js:13 (System.isDocker) System.isDocker: This system is running inside Docker.
2026-01-19T03:51:19+0100 <info> gateway.backup.js:55 (Gateway.backup) Gateway backup: Locking SQLite Database
2026-01-19T03:51:19+0100 <info> gateway.backup.js:60 () Backup attempt n°1 : Cleaning backup folder
2026-01-19T03:51:19+0100 <info> gateway.backup.js:64 () Starting Gateway backup in folder /var/lib/gladysassistant/backups/gladys-db-backup-2026-1-19-3-51-19.db
2026-01-19T03:51:19+0100 <info> gateway.backup.js:66 () Gateway backup: Unlocking Database
2026-01-19T03:51:19+0100 <info> gateway.backup.js:72 (Gateway.backup) Gateway backup : SQLite file size is 2mb.
2026-01-19T03:51:19+0100 <info> gateway.backup.js:73 (Gateway.backup) Gateway backup : Backing up DuckDB into a Parquet folder /var/lib/gladysassistant/backups/gladys-db-backup_2026-1-19-3-51-19_parquet_folder
2026-01-19T03:52:14+0100 <info> gateway.backup.js:82 (Gateway.backup) Gateway backup: Compressing backup
2026-01-19T03:52:42+0100 <info> gateway.backup.js:88 (Gateway.backup) Gateway backup: Encrypting backup
2026-01-19T03:52:43+0100 <info> gateway.backup.js:95 (Gateway.backup) Gateway backup: Uploading backup, size of encrypted backup = 443mb. Path = /var/lib/gladysassistant/backups/gladys-db-backup-2026-1-19-3-51-19.tar.gz.enc
2026-01-19T03:53:04+0100 <info> gateway.backup.js:139 (Gateway.backup) Gladys backup uploaded with success to Gladys Gateway.

¿Estás seguro de que estás midiendo lo correcto? ¿Cómo mides el uso de la memoria?

Allí, no entré en los detalles de la memoria, lo vi esta mañana por casualidad.

Es la memoria global, pero el aumento es justo en el momento del backup.

Empieza a las 3:51, exactamente cuando se inicia el backup de SQLite y DuckDB en los registros.

Sí sí, el aumento se produce efectivamente durante la copia de seguridad.

Solo quería entender cómo mides concretamente el uso de la RAM.

Según el método utilizado, no siempre verás la RAM « liberarse » después de la copia de seguridad, y es completamente normal en Linux.

Algunas herramientas muestran la RAM total utilizada incluyendo el caché y los buffers, lo que puede dar la impresión de que no hay RAM liberada, cuando en realidad la RAM está liberada y reutilizable de inmediato.

Ejemplo en mi caso:

Lo importante es « available », no « free » !

Pero también es posible que haya un problema de liberación de memoria, por eso los detalles técnicos ayudarían mucho :wink:

Ah sí, entiendo, el comando que se utiliza para recuperar mi gráfico:

free | grep 'Mem' | awk '{print ($3/$2)*100}'

Por lo tanto, acabo de hacer la prueba

Antes del backup:

image

5 minutos después del backup

image

He realizado pruebas locales con grandes bases de datos DuckDB y no he encontrado nada que llame la atención.

Después, la realidad del terreno puede ser diferente, así que he creado un build especial que añade logs a la versión de producción para ver de dónde proviene el uso de la RAM :slightly_smiling_face:

Con este build, verás el uso de la RAM de Node.js + DuckDB antes del backup, durante el backup y después del backup.

El build está disponible en el tag a continuación, ¿puedes probarlo?

Solo he hecho un build x64, porque, si no me equivoco, estás en un mini-PC?

(No hay build arm64 para ahorrar tiempo)

gladysassistant/gladys:add-memory-logs-during-backup

Si quieres que la prueba sea lo más representativa posible, no hagas nada en Gladys antes ni durante la prueba:

  • No abrir el panel de control
  • Evitar que la prueba sea a las 00:00 o 00:30 para no pasar por el cálculo de los consumos energéticos

Perfecto, acabo de hacer la prueba, no he abierto ningún panel de control después de iniciar el contenedor.

2026-01-19T15:16:11+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS antes de la copia de seguridad - RSS: 375.19 MB, Heap: 214.96/234.36 MB
2026-01-19T15:16:11+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria de DuckDB antes de la copia de seguridad - Total: 3.50 MB
2026-01-19T15:16:11+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 0.75 MB
2026-01-19T15:16:11+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 2.75 MB
2026-01-19T15:16:11+0100 <info> system.isDocker.js:13 (System.isDocker) System.isDocker: Este sistema está ejecutándose dentro de Docker.
2026-01-19T15:16:11+0100 <info> gateway.backup.js:79 (Gateway.backup) Copia de seguridad de Gateway: Bloqueando la base de datos SQLite
2026-01-19T15:16:11+0100 <info> gateway.backup.js:84 () Intento de copia de seguridad n°1: Limpiando la carpeta de copia de seguridad
2026-01-19T15:16:11+0100 <info> gateway.backup.js:88 () Iniciando la copia de seguridad de Gateway en la carpeta /var/lib/gladysassistant/backups/gladys-db-backup-2026-1-19-15-16-11.db
2026-01-19T15:16:11+0100 <info> gateway.backup.js:90 () Copia de seguridad de Gateway: Desbloqueando la base de datos
2026-01-19T15:16:11+0100 <info> gateway.backup.js:96 (Gateway.backup) Copia de seguridad de Gateway: El tamaño del archivo SQLite es de 2mb.
2026-01-19T15:16:11+0100 <info> gateway.backup.js:97 (Gateway.backup) Copia de seguridad de Gateway: Copiando DuckDB en una carpeta Parquet /var/lib/gladysassistant/backups/gladys-db-backup_2026-1-19-15-16-11_parquet_folder
2026-01-19T15:17:06+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS después de exportar la base de datos a parquet - RSS: 3574.57 MB, Heap: 212.67/227.86 MB
2026-01-19T15:17:08+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria de DuckDB después de exportar la base de datos a parquet - Total: 2153.00 MB
2026-01-19T15:17:08+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2150.25 MB
2026-01-19T15:17:08+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 2.75 MB
2026-01-19T15:17:08+0100 <info> gateway.backup.js:108 (Gateway.backup) Copia de seguridad de Gateway: Comprimiendo la copia de seguridad
2026-01-19T15:17:36+0100 <info> gateway.backup.js:114 (Gateway.backup) Copia de seguridad de Gateway: Encriptando la copia de seguridad
2026-01-19T15:17:37+0100 <info> gateway.backup.js:121 (Gateway.backup) Copia de seguridad de Gateway: Subiendo la copia de seguridad, tamaño de la copia de seguridad encriptada = 444mb. Ruta = /var/lib/gladysassistant/backups/gladys-db-backup-2026-1-19-15-16-11.tar.gz.enc
2026-01-19T15:17:38+0100<info> gateway.backup.js:35 (logMemoryUsage) Memoria JS antes de subir el fragmento 0 - RSS: 2593.47 MB, Heap: 219.95/235.11 MB
2026-01-19T15:17:38+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria DuckDB antes de subir el fragmento 0 - Total: 2153.00 MB
2026-01-19T15:17:38+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2150.25 MB
2026-01-19T15:17:38+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 2.75 MB
2026-01-19T15:17:38+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS antes de subir el fragmento 1 - RSS: 2628.88 MB, Heap: 212.63/235.11 MB
2026-01-19T15:17:38+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria DuckDB antes de subir el fragmento 1 - Total: 2153.00 MB
2026-01-19T15:17:38+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2150.25 MB
2026-01-19T15:17:38+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 2.75 MB
2026-01-19T15:17:39+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS antes de subir el fragmento 2 - RSS: 2670.50 MB, Heap: 214.42/243.11 MB
2026-01-19T15:17:39+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria DuckDB antes de subir el fragmento 2 - Total: 2153.00 MB
2026-01-19T15:17:39+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2150.25 MB
2026-01-19T15:17:39+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 2.75 MB
2026-01-19T15:17:40+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS antes de subir el fragmento 3 - RSS: 2690.51 MB, Heap: 213.03/240.06 MB
2026-01-19T15:17:40+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria DuckDB antes de subir el fragmento 3 - Total: 2153.00 MB
2026-01-19T15:17:40+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2150.25 MB
2026-01-19T15:17:40+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 2.75 MB
2026-01-19T15:17:40+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS antes de subir el fragmento 4 - RSS: 2709.51 MB, Heap: 209.10/238.68 MB
2026-01-19T15:17:40+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria DuckDB antes de subir el fragmento 4 - Total: 2153.00 MB
2026-01-19T15:17:40+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2150.25 MB
2026-01-19T15:17:40+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 2.75 MB
2026-01-19T15:17:41+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS antes de subir el fragmento 5 - RSS: 2687.46 MB, Heap: 210.02/238.68 MB
2026-01-19T15:17:41+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria DuckDB antes de subir el fragmento 5 - Total: 2153.00 MB
2026-01-19T15:17:41+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2150.25 MB
2026-01-19T15:17:41+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 2.75 MB
2026-01-19T15:17:42+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS antes de subir el fragmento 6 - RSS: 2647.46 MB, Heap: 207.48/238.18 MB
2026-01-19T15:17:42+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria DuckDB antes de subir el fragmento 6 - Total: 2153.00 MB
2026-01-19T15:17:42+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2150.25 MB
2026-01-19T15:17:42+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 2.75 MB
2026-01-19T15:17:43+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS antes de subir el fragmento 7 - RSS: 2687.43 MB, Heap: 208.42/238.18 MB
2026-01-19T15:17:43+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria DuckDB antes de subir el fragmento 7 - Total: 2153.00 MB
2026-01-19T15:17:43+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2150.25 MB
2026-01-19T15:17:43+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 2.75 MB
2026-01-19T15:17:43+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS antes de subir el fragmento 8 - RSS: 2667.42 MB, Heap: 208.20/237.68 MB
2026-01-19T15:17:43+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria DuckDB antes de subir el fragmento 8 - Total: 2153.00 MB
2026-01-19T15:17:43+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2150.25 MB
2026-01-19T15:17:43+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 2.75 MB
2026-01-19T15:17:44+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS antes de subir el fragmento 9 - RSS: 2689.67 MB, Heap: 211.95/237.68 MB
2026-01-19T15:17:44+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria DuckDB antes de subir el fragmento 9 - Total: 2153.00 MB
2026-01-19T15:17:44+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2150.25 MB
2026-01-19T15:17:44+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 2.75 MB
2026-01-19T15:17:45+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS antes de subir el fragmento 10 - RSS: 2672.50 MB, Heap: 212.04/237.93 MB
2026-01-19T15:17:45+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria DuckDB antes de subir el fragmento 10 - Total: 2153.00 MB
2026-01-19T15:17:45+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2150.25 MB
2026-01-19T15:17:45+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 2.75 MB
2026-01-19T15:17:46+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS antes de subir el fragmento 11 - RSS: 2691.79 MB, Heap: 212.97/237.93 MB
2026-01-19T15:17:46+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria DuckDB antes de subir el fragmento 11 - Total: 2153.00 MB
2026-01-19T15:17:46+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2150.25 MB
2026-01-19T15:17:46+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 2.75 MB
2026-01-19T15:17:47+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS antes de subir el fragmento 12 - RSS: 2672.31 MB, Heap: 207.55/238.18 MB
2026-01-19T15:17:47+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria DuckDB antes de subir el fragmento 12 - Total: 2153.00 MB
2026-01-19T15:17:47+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2150.25 MB
2026-01-19T15:17:47+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 2.75 MB
2026-01-19T15:17:48+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS antes de subir el fragmento 13 - RSS: 2692.31 MB, Heap: 208.69/238.18 MB
2026-01-19T15:17:48+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria DuckDB antes de subir el fragmento 13 - Total: 2153.00 MB
2026-01-19T15:17:48+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2150.25 MB
2026-01-19T15:17:48+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 2.75 MB
2026-01-19T15:17:49+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS antes de subir el fragmento 14 - RSS: 2652.46 MB, Heap: 207.80/238.18 MB
2026-01-19T15:17:49+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria DuckDB antes de subir el fragmento 14 - Total: 2153.00 MB
2026-01-19T15:17:49+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2150.25 MB
2026-01-19T15:17:49+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 2.75 MB
2026-01-19T15:17:50+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS antes de subir el fragmento 15 - RSS: 2692.34 MB, Heap: 209.17/238.18 MB
2026-01-19T15:17:50+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria DuckDB antes de subir el fragmento 15 - Total: 2153.00 MB
2026-01-19T15:17:50+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2150.25 MB
2026-01-19T15:17:50+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 2.75 MB
2026-01-19T15:17:51+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS antes de subir el fragmento 16 - RSS: 2672.25 MB, Heap: 207.72/238.43 MB
2026-01-19T15:17:51+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria DuckDB antes de subir el fragmento 16 - Total: 2153.00 MB
2026-01-19T15:17:51+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2150.25 MB
2026-01-19T15:17:51+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 2.75 MB
2026-01-19T15:17:52+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS antes de subir el fragmento 17 - RSS: 2694.63 MB, Heap: 208.52/238.43 MB
2026-01-19T15:17:52+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria DuckDB antes de subir el fragmento 17 - Total: 2153.00 MB
2026-01-19T15:17:52+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2150.25 MB
2026-01-19T15:17:52+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 2.75 MB
2026-01-19T15:17:53+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS antes de subir el fragmento 18 - RSS: 2653.39 MB, Heap: 209.55/238.43 MB
2026-01-19T15:17:53+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria de DuckDB antes de subir el fragmento 18 - Total: 2153.00 MB
2026-01-19T15:17:53+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2150.25 MB
2026-01-19T15:17:53+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 2.75 MB
2026-01-19T15:17:54+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria de JS antes de subir el fragmento 19 - RSS: 2693.16 MB, Heap: 210.79/238.43 MB
2026-01-19T15:17:54+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria de DuckDB antes de subir el fragmento 19 - Total: 2153.00 MB
2026-01-19T15:17:54+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2150.25 MB
2026-01-19T15:17:54+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 2.75 MB
2026-01-19T15:17:55+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria de JS antes de subir el fragmento 20 - RSS: 2673.18 MB, Heap: 208.21/237.93 MB
2026-01-19T15:17:55+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria de DuckDB antes de subir el fragmento 20 - Total: 2153.00 MB
2026-01-19T15:17:55+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2150.25 MB
2026-01-19T15:17:55+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 2.75 MB
2026-01-19T15:17:56+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria de JS antes de subir el fragmento 21 - RSS: 2694.30 MB, Heap: 210.80/237.93 MB
2026-01-19T15:17:56+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria de DuckDB antes de subir el fragmento 21 - Total: 2153.00 MB
2026-01-19T15:17:56+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2150.25 MB
2026-01-19T15:17:56+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 2.75 MB
2026-01-19T15:17:57+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria de JS antes de subir el fragmento 22 - RSS: 2654.76 MB, Heap: 213.88/238.18 MB
2026-01-19T15:17:57+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria de DuckDB antes de subir el fragmento 22 - Total: 2153.00 MB
2026-01-19T15:17:57+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2150.25 MB
2026-01-19T15:17:57+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 2.75 MB
2026-01-19T15:17:58+0100 <info> gateway.backup.js:167 (Gateway.backup) La copia de seguridad de Gladys se ha subido correctamente a Gladys Gateway.
2026-01-19T15:17:58+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria de JS después de subir - RSS: 2678.62 MB, Heap: 210.48/238.18 MB
2026-01-19T15:17:58+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria de DuckDB después de subir - Total: 2153.00 MB
2026-01-19T15:17:58+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2150.25 MB
2026-01-19T15:17:58+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 2.75 MB

¡Muchas gracias por los registros, eso ayuda mucho.

El problema está en DuckDB, no en Node.js.

Tengo una idea, voy a agregar un CHECKPOINT de DuckDB después de la exportación.

Acabo de reiniciar un build con la misma etiqueta, una vez que esté listo, te aviso para que puedas probarlo.

¡La compilación está lista en la misma etiqueta!

2026-01-19T15:32:12+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS antes de la copia de seguridad - RSS: 421.17 MB, Heap: 240.86/276.61 MB
2026-01-19T15:32:12+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria de DuckDB antes de la copia de seguridad - Total: 3.50 MB
2026-01-19T15:32:12+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 0.75 MB
2026-01-19T15:32:12+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 2.75 MB
2026-01-19T15:32:12+0100 <info> system.isDocker.js:13 (System.isDocker) System.isDocker: Este sistema se está ejecutando dentro de Docker.
2026-01-19T15:32:12+0100 <info> gateway.backup.js:79 (Gateway.backup) Copia de seguridad de Gateway: Bloqueando la base de datos SQLite
2026-01-19T15:32:12+0100 <info> gateway.backup.js:84 () Intento de copia de seguridad n°1: Limpiando la carpeta de copia de seguridad
2026-01-19T15:32:12+0100 <info> gateway.backup.js:88 () Iniciando la copia de seguridad de Gateway en la carpeta /var/lib/gladysassistant/backups/gladys-db-backup-2026-1-19-15-32-12.db
2026-01-19T15:32:12+0100 <info> gateway.backup.js:90 () Copia de seguridad de Gateway: Desbloqueando la base de datos
2026-01-19T15:32:12+0100 <info> gateway.backup.js:96 (Gateway.backup) Copia de seguridad de Gateway: El tamaño del archivo SQLite es de 2mb.
2026-01-19T15:32:12+0100 <info> gateway.backup.js:97 (Gateway.backup) Copia de seguridad de Gateway: Copiando DuckDB en una carpeta Parquet /var/lib/gladysassistant/backups/gladys-db-backup_2026-1-19-15-32-12_parquet_folder
2026-01-19T15:33:07+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS después de exportar la base de datos a parquet - RSS: 3457.38 MB, Heap: 209.81/233.86 MB
2026-01-19T15:33:09+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria de DuckDB después de exportar la base de datos a parquet - Total: 2154.00 MB
2026-01-19T15:33:09+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2151.25 MB
2026-01-19T15:33:09+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 2.75 MB
2026-01-19T15:33:09+0100 <info> gateway.backup.js:108 (Gateway.backup) Copia de seguridad de Gateway: Forzando el punto de control de DuckDB para liberar memoria
2026-01-19T15:33:11+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS después del punto de control - RSS: 2895.04 MB, Heap: 211.72/236.86 MB
2026-01-19T15:33:11+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria de DuckDB después del punto de control - Total: 2205.25 MB
2026-01-19T15:33:11+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2203.75 MB
2026-01-19T15:33:11+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 1.50 MB
2026-01-19T15:33:11+0100 <info> gateway.backup.js:112 (Gateway.backup) Copia de seguridad de Gateway: Comprimiendo la copia de seguridad
2026-01-19T15:33:38+0100 <info> gateway.backup.js:118 (Gateway.backup) Copia de seguridad de Gateway: Encriptando la copia de seguridad
2026-01-19T15:33:40+0100 <info> gateway.backup.js:125 (Gateway.backup) Copia de seguridad de Gateway: Subiendo la copia de seguridad, tamaño de la copia de seguridad encriptada = 444mb. Ruta = /var/lib/gladysassistant/backups/gladys-db-backup-2026-1-19-15-32-12.tar.gz.enc
2026-01-19T15:33:41+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS antes de subir el fragmento 0 - RSS: 2650.89 MB, Heap: 216.82/244.06 MB
2026-01-19T15:33:41+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria DuckDB antes de subir el fragmento 0 - Total: 2205.25 MB
2026-01-19T15:33:41+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2203.75 MB
2026-01-19T15:33:41+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 1.50 MB
2026-01-19T15:33:44+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS antes de subir el fragmento 1 - RSS: 2670.77 MB, Heap: 211.36/243.68 MB
2026-01-19T15:33:44+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria DuckDB antes de subir el fragmento 1 - Total: 2205.25 MB
2026-01-19T15:33:44+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2203.75 MB
2026-01-19T15:33:44+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 1.50 MB
2026-01-19T15:33:46+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS antes de subir el fragmento 2 - RSS: 2690.89 MB, Heap: 211.13/243.93 MB
2026-01-19T15:33:46+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria DuckDB antes de subir el fragmento 2 - Total: 2205.25 MB
2026-01-19T15:33:46+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2203.75 MB
2026-01-19T15:33:46+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 1.50 MB
2026-01-19T15:33:47+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS antes de subir el fragmento 3 - RSS: 2730.59 MB, Heap: 207.60/244.18 MB
2026-01-19T15:33:47+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria DuckDB antes de subir el fragmento 3 - Total: 2205.25 MB
2026-01-19T15:33:47+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2203.75 MB
2026-01-19T15:33:47+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 1.50 MB
2026-01-19T15:33:47+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS antes de subir el fragmento 4 - RSS: 2750.83 MB, Heap: 209.09/244.18 MB
2026-01-19T15:33:47+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria DuckDB antes de subir el fragmento 4 - Total: 2205.25 MB
2026-01-19T15:33:47+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2203.75 MB
2026-01-19T15:33:47+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 1.50 MB
2026-01-19T15:33:48+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS antes de subir el fragmento 5 - RSS: 2730.72 MB, Heap: 207.56/244.18 MB
2026-01-19T15:33:48+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria DuckDB antes de subir el fragmento 5 - Total: 2205.25 MB
2026-01-19T15:33:48+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2203.75 MB
2026-01-19T15:33:48+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 1.50 MB
2026-01-19T15:33:49+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS antes de subir el fragmento 6 - RSS: 2751.00 MB, Heap: 211.59/244.18 MB
2026-01-19T15:33:49+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria DuckDB antes de subir el fragmento 6 - Total: 2205.25 MB
2026-01-19T15:33:49+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2203.75 MB
2026-01-19T15:33:49+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 1.50 MB
2026-01-19T15:33:50+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS antes de subir el fragmento 7 - RSS: 2712.23 MB, Heap: 210.08/244.18 MB
2026-01-19T15:33:50+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria DuckDB antes de subir el fragmento 7 - Total: 2205.25 MB
2026-01-19T15:33:50+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2203.75 MB
2026-01-19T15:33:50+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 1.50 MB
2026-01-19T15:33:50+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS antes de subir el fragmento 8 - RSS: 2751.04 MB, Heap: 211.45/244.18 MB
2026-01-19T15:33:50+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria DuckDB antes de subir el fragmento 8 - Total: 2205.25 MB
2026-01-19T15:33:50+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2203.75 MB
2026-01-19T15:33:50+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 1.50 MB
2026-01-19T15:33:51+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS antes de subir el fragmento 9 - RSS: 2731.21 MB, Heap: 207.65/244.18 MB
2026-01-19T15:33:51+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria DuckDB antes de subir el fragmento 9 - Total: 2205.25 MB
2026-01-19T15:33:51+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2203.75 MB
2026-01-19T15:33:51+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 1.50 MB
2026-01-19T15:33:52+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS antes de subir el fragmento 10 - RSS: 2751.28 MB, Heap: 209.11/244.18 MB
2026-01-19T15:33:52+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria DuckDB antes de subir el fragmento 10 - Total: 2205.25 MB
2026-01-19T15:33:52+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2203.75 MB
2026-01-19T15:33:52+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 1.50 MB
2026-01-19T15:33:53+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS antes de subir el fragmento 11 - RSS: 2733.05 MB, Heap: 209.46/259.93 MB
2026-01-19T15:33:53+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria DuckDB antes de subir el fragmento 11 - Total: 2205.25 MB
2026-01-19T15:33:53+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2203.75 MB
2026-01-19T15:33:53+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 1.50 MB
2026-01-19T15:33:54+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS antes de subir el fragmento 12 - RSS: 2751.96 MB, Heap: 210.97/259.93 MB
2026-01-19T15:33:54+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria DuckDB antes de subir el fragmento 12 - Total: 2205.25 MB
2026-01-19T15:33:54+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2203.75 MB
2026-01-19T15:33:54+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 1.50 MB
2026-01-19T15:33:56+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS antes de subir el fragmento 13 - RSS: 2773.28 MB, Heap: 213.34/260.18 MB
2026-01-19T15:33:56+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria DuckDB antes de subir el fragmento 13 - Total: 2205.25 MB
2026-01-19T15:33:56+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2203.75 MB
2026-01-19T15:33:56+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 1.50 MB
2026-01-19T15:33:57+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS antes de subir el fragmento 14 - RSS: 2751.95 MB, Heap: 214.58/260.18 MB
2026-01-19T15:33:57+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria DuckDB antes de subir el fragmento 14 - Total: 2205.25 MB
2026-01-19T15:33:57+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2203.75 MB
2026-01-19T15:33:57+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 1.50 MB
2026-01-19T15:33:58+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS antes de subir el fragmento 15 - RSS: 2732.84 MB, Heap: 209.05/260.43 MB
2026-01-19T15:33:58+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria DuckDB antes de subir el fragmento 15 - Total: 2205.25 MB
2026-01-19T15:33:58+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2203.75 MB
2026-01-19T15:33:58+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 1.50 MB
2026-01-19T15:33:59+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS antes de subir el fragmento 16 - RSS: 2751.91 MB, Heap: 210.49/260.43 MB
2026-01-19T15:33:59+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria DuckDB antes de subir el fragmento 16 - Total: 2205.25 MB
2026-01-19T15:33:59+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2203.75 MB
2026-01-19T15:33:59+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 1.50 MB
2026-01-19T15:34:00+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS antes de subir el fragmento 17 - RSS: 2732.95 MB, Heap: 209.07/260.43 MB
2026-01-19T15:34:00+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria DuckDB antes de subir el fragmento 17 - Total: 2205.25 MB
2026-01-19T15:34:00+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2203.75 MB
2026-01-19T15:34:00+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 1.50 MB
2026-01-19T15:34:02+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS antes de subir el fragmento 18 - RSS: 2714.02 MB, Heap: 210.83/259.93 MB
2026-01-19T15:34:02+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria de DuckDB antes de subir el fragmento 18 - Total: 2205.25 MB
2026-01-19T15:34:02+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2203.75 MB
2026-01-19T15:34:02+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 1.50 MB
2026-01-19T15:34:03+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS antes de subir el fragmento 19 - RSS: 2752.82 MB, Heap: 212.62/259.93 MB
2026-01-19T15:34:03+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria de DuckDB antes de subir el fragmento 19 - Total: 2205.25 MB
2026-01-19T15:34:03+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2203.75 MB
2026-01-19T15:34:03+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 1.50 MB
2026-01-19T15:34:04+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS antes de subir el fragmento 20 - RSS: 2732.86 MB, Heap: 207.55/259.93 MB
2026-01-19T15:34:04+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria de DuckDB antes de subir el fragmento 20 - Total: 2205.25 MB
2026-01-19T15:34:04+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2203.75 MB
2026-01-19T15:34:04+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 1.50 MB
2026-01-19T15:34:05+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS antes de subir el fragmento 21 - RSS: 2715.16 MB, Heap: 207.26/260.18 MB
2026-01-19T15:34:05+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria de DuckDB antes de subir el fragmento 21 - Total: 2205.25 MB
2026-01-19T15:34:05+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2203.75 MB
2026-01-19T15:34:05+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 1.50 MB
2026-01-19T15:34:07+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS antes de subir el fragmento 22 - RSS: 2755.16 MB, Heap: 210.93/260.18 MB
2026-01-19T15:34:07+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria de DuckDB antes de subir el fragmento 22 - Total: 2205.25 MB
2026-01-19T15:34:07+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2203.75 MB
2026-01-19T15:34:07+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 1.50 MB
2026-01-19T15:34:07+0100 <info> gateway.backup.js:171 (Gateway.backup) Copia de seguridad de Gladys subida con éxito a Gladys Gateway.
2026-01-19T15:34:07+0100 <info> gateway.backup.js:35 (logMemoryUsage) Memoria JS después de subir - RSS: 2759.53 MB, Heap: 211.51/260.43 MB
2026-01-19T15:34:07+0100 <info> gateway.backup.js:41 (logMemoryUsage) Memoria de DuckDB después de subir - Total: 2205.25 MB
2026-01-19T15:34:07+0100 <info> gateway.backup.js:46 ()   - BASE_TABLE: 2203.75 MB
2026-01-19T15:34:07+0100 <info> gateway.backup.js:46 ()   - IN_MEMORY_TABLE: 1.50 MB

Vale, eso no ayuda :smiley: Voy a intentar crear una conexión especial para la copia de seguridad