Process out of memory en Node.js

Richard Muñoz
1 min readAug 20, 2019
Photo by Johnson Wang on Unsplash

En ocaciones nos vamos a topar con un problema que terminará nuestro proceso con exit code diferente de 0.

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed — JavaScript heap out of memory

Este error se lanza cuando la memoria disponible del sistema es menor a la requerida para ejecutar el proceso. La cantidad de memoria predeterminada para Node.js es 512 MB, lo cual en casos de procesos exigentes de I/O, puede resultar en la terminación del proceso.

Node permite cambiar este valor con el comando --max-old-space-size.

node --max-old-space-size=1024 index.js #aumentar a 1gb
node --max-old-space-size=2048 index.js #aumentar a 2gb
node --max-old-space-size=4096 index.js #aumentar a 4gb
node --max-old-space-size=8192 index.js #aumentar a 8gb

En caso de usar npm, también es posible asignar el comando a un alias:

alias npm=’node — max_old_space_size=8192 /usr/bin/npm’

Si se utiliza pm2 como gestor de procesos, se puede añadir al archivo pm2.json la siguiente configuración:

{
"apps": [
{
...
"node_args": "--max_old_space_size=4096"
}
]
}

Si te gustó el artículo no olvides compartirlo :D

--

--