Tengo una aplicación que lee archivos JSON y agrega los datos a un productor de Kafka. Como estamos lidiando con 5 MB/s, necesitaba realizar varios subprocesos en este proceso. Tengo 3 trabajadores leyendo archivos y 7 trabajadores escribiendo a Kafka. Sin embargo, no importa lo que haga, sigo recibiendo el mismo error.
FATAL: Error: Worker terminated due to reaching memory limit: JS heap out of memory at new NodeError (node:internal/errors:372:5) at Worker.[kOnExit] (node:internal/worker:276:26) at Worker.<computed>.onexit (node:internal/worker:198:20) { code: 'ERR_WORKER_OUT_OF_MEMORY' }Cambié la cantidad de espacio de almacenamiento dinámico (¡hasta 16 GB!) con el que se ejecuta Javascript configurando
NODE_OPTIONS=--max-old-space-size=$((16 * 1024))
Pero no importa lo que haga, sigo quedándome sin memoria después de unos 20 minutos más o menos. ¿Cómo puedo asegurarme de no quedarme sin memoria?