Heap supera RAM en e2-medium 4GB: recalculando memoria PM2

Aprende a calcular correctamente el límite de heap en PM2 para evitar que el OOM killer derribe tus apps Node.js en un servidor e2-medium con 4GB de RAM.

5 jun 2026 • 3 min read • Q2BSTUDIO Team

Redistribución de heap para evitar OOM en servidor compartido

Cuando se administran múltiples aplicaciones Node.js en una sola instancia de Google Compute Engine e2-medium (2 vCPU, 4?GB de RAM), la planificación de la memoria se convierte en un factor crítico de estabilidad. Un error frecuente consiste en asignar límites de heap (--max-old-space-size) sin considerar el consumo real del sistema operativo, bases de datos u otros procesos concurrentes. En este artículo analizamos un caso real donde la suma de los topes de heap superaba la RAM disponible, explicamos por qué el servicio no falló de inmediato y detallamos una metodología para recalcular los límites de forma segura. Todo ello desde una perspectiva técnica y empresarial que puede aplicarse en entornos productivos.

El escenario parte de tres aplicaciones Next.js ejecutadas bajo PM2 en modo cluster: dos con dos instancias cada una y una con una instancia. Los topes de heap se habían configurado en 896?MB para las primeras y 512?MB para la tercera, sumando 4096?MB, mientras que la RAM real de la máquina era de 3924?MB. Además, en el mismo servidor convivían PostgreSQL (~400?MB), Gunicorn con cuatro workers (~600?MB), el sistema operativo (~400?MB) y ocasionalmente Playwright (~300?MB). El total de heap superaba la RAM en 172?MB, lo que constituía una bomba de tiempo latente.

La razón por la que el sistema no colapsó inmediatamente es que --max-old-space-size representa un techo, no una asignación fija. En condiciones normales, cada proceso consumía alrededor de 100?MB de heap, muy por debajo del límite. El peligro surge en momentos de pico: si varios procesos sufren fugas de memoria o reciben solicitudes grandes de renderizado simultáneas, cada uno intenta crecer hasta su tope (896?MB), superando la RAM física. Entonces el OOM killer de Linux termina procesos aleatoriamente, provocando caídas de servicio. Esta situación ejemplifica por qué “no falla ahora, luego está bien” es una de las decisiones más peligrosas en la administración de servidores.

Para evitar ese riesgo, es necesario separar el presupuesto de memoria dedicado a Node.js del resto de componentes. Restando el consumo estimado de PostgreSQL, Gunicorn, sistema operativo y Playwright, quedan aproximadamente 2200?MB disponibles para los procesos Node. Con esa capacidad, se redistribuyen los límites según el peso de cada aplicación: la app de blog y administración (la más pesada) recibe dos instancias de 512?MB cada una; la de chat, dos instancias de 384?MB; y la aplicación secreta, una instancia de 384?MB. El total suma 2176?MB, inferior a los 2200?MB disponibles, dejando un margen de seguridad.

Además, se configura max_memory_restart de PM2 ligeramente por encima del tope de heap, porque el RSS (Resident Set Size) incluye heap más memoria no heap. Con un heap de 512?MB, se reinicia el proceso al alcanzar 640?MB, antes de que el OOM killer intervenga. Otro detalle clave: cambiar --max-old-space-size no se consigue con pm2 reload; ese comando solo regenera workers sin aplicar nuevos argumentos al intérprete. Es necesario hacer pm2 delete y luego pm2 start para que los nuevos valores surtan efecto, y posteriormente pm2 save para persistirlos tras reinicios.

Estas prácticas son esenciales cuando se despliegan arquitecturas modernas con agentes IA, aplicaciones a medida o servicios inteligencia de negocio. En Q2BSTUDIO, al desarrollar software a medida, integramos estas consideraciones de capacidad y estabilidad desde la fase de diseño. Nuestro equipo aplica análisis de memoria en entornos de producción y sabe que la gestión de recursos es tan importante como el código mismo. Por ejemplo, cuando implementamos ia para empresas, evaluamos el consumo de cada microservicio para evitar cuellos de botella. Asimismo, en proyectos de ciberseguridad, una configuración incorrecta de memoria puede exponer vulnerabilidades de denegación de servicio.

La lección principal es clara: el total de límites de heap (instancias × techo) debe ser siempre inferior a la RAM física disponible, descontando otros procesos. No basta con mirar un solo proceso; hay que sumar todos los que comparten el servidor. El techo no es una asignación; es un riesgo potencial. Por eso, en Q2BSTUDIO recomendamos monitorizar el heap real con herramientas como PM2 y ajustar los límites de forma conservadora. Si tu empresa necesita desplegar aplicaciones Next.js, servicios cloud aws y azure o cualquier sistema crítico, podemos ayudarte a dimensionar infraestructuras robustas. Contáctanos para una consultoría gratuita.

A BREAK?

Play for a moment before you go

OUR SERVICES

How we can help you

Artificial intelligence

AI agents, chatbots, and intelligent assistants that automate tasks and serve your customers 24/7 to improve the efficiency of your business.

More info

Software Development

Web, mobile, and desktop applications, intranets, e-commerce, SaaS, and management platforms designed for your company's specific needs.

More info

Cloud services

Migration, infrastructure, managed hosting, high availability, and security on Microsoft Azure and Amazon Web Services to help your business scale without limits.

More info

Cybersecurity and pentesting

Security audits, penetration testing and protection of applications, data and infrastructure on-premise and cloud, with ethical hacking and regulatory compliance.

More info

Business Intelligence

Dashboards and data analysis with Power BI: we integrate your sources, design dashboards and KPIs and turn your data into decisions.

More info

Process automation

We automate repetitive tasks and connect your applications with n8n, Power Automate, Make, and RPA, eliminating manual work and increasing productivity.

More info

Training for Companies

We train your teams in technology with criteria: web development, databases, Git, best practices and security, automation with n8n, artificial intelligence for companies and creation of AI solutions with Azure AI Foundry.

More info

Code Auditing

We audit the code that you, your team or an AI create: we tell you what is good and what to improve, we secure it and make it ready for production, web or app.

More info

AI Image Generation

We create for you the images that your business needs with artificial intelligence: product, networks, advertising, illustration and avatars. You tell us what you want and we deliver it ready to use.

More info

AI Video Generation

We create videos with artificial intelligence for you: promotional, networking, virtual presenters, dubbing and animations. You tell us the idea and we will deliver it assembled and ready to publish.

More info

AI Conversational Avatars

We create conversational avatars with AI – digital humans with a face and voice – that serve your customers and teams with the knowledge of your company, on your website, interactive monitors, WhatsApp or Teams.

More info

Online Marketing and AI

Google Ads, Meta Ads, LinkedIn Ads and AI Engine Positioning (GEO/AEO): we attract customers and make your brand appear where they search for you, also on ChatGPT, Gemini and Perplexity.

More info

Do you have a project in mind?

Tell us your vision and we'll turn it into a software solution. Whatever the scope, we make your idea real.

Live Chat