JavaScript

Truco: Aumentar la memoria máxima en Node

Al ejecutar un proceso de Node que sea intensivo en memoria nos podemos encontrar que este finalice de una forma abrupta con un mensaje similar a FATAL ERROR: invalid table size Allocation failed - JavaScript heap out of memory. Lo que nos indica que este se ha quedado sin memoria. Generalmente esto no es debido a que el ordenador se quede sin memoria, sino a que se ha utilizado la máxima asignada a un proceso de Node. Por lo cual se puede solucionar fácilmente aumentando la memoria máxima en Node.

Cambiar la memoria predeterminada en Node

La memoria máxima que puede usarse en un proceso de Node se puede configurar asignando el nuevo valor en MB al comando --max-old-space-size durante el lanzamiento del proceso. Así, para aumentar la memoria a 4GB se puede escribir

node --max-old-space-size=4096 index.js

Cambiar la memoria en PM2

En el caso de trabajar con PM2 esta opción se puede indicar en el archivo pm2.json, lo que nos da algo más de flexibilidad y control sobre este valor. Así, para conseguir los mismos 4GB de antes se debería crear un archivo como el siguiente

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

Conclusiones

Hoy hemos visto cómo se puede aumentar fácilmente la memoria máxima de Node para poder lanzar en nuestros sistemas procesos más complejos.

Imagen de Theodor Moise en Pixabay

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez
Tags: NodeTruco

Recent Posts

Por Qué las Contraseñas Largas son más Seguras que las Complejas

"Tu contraseña debe tener al menos 8 caracteres, una mayúscula, un número y un símbolo…

4 días ago

Gini, KS y AUC: Cómo Medir la Calidad de un Modelo de Credit Scoring

Cuando un analista de riesgo presenta un nuevo scorecard ante el comité de dirección, la…

6 días ago

Curiosidad: De dónde vienen foo, bar y foobar

Si revisáis código o documentación de otros programadores, tarde o temprano os toparéis con dos…

2 semanas ago

BG/NBD + Gamma/Gamma: el modelo probabilístico para CLV en compras continuas

Los dos artículos anteriores cubrieron el CLV clásico —una fórmula útil pero que trata a…

2 semanas ago

Errores habituales al trabajar con DataFrames grandes en Pandas (y cómo evitarlos)

Hay un momento muy concreto en la vida de casi todo análisis: el código que…

3 semanas ago

Champion vs Challenger: Cómo los Bancos Validan Modelos Nuevos antes de Ponerlos en Producción

Has construido un nuevo modelo de credit scoring. Las métricas de validación son mejores que…

3 semanas ago

This website uses cookies.