Industrial
Industrial

Reputation: 42796

Limiting node.js's memory usage

I am trying to limit a node.js application from using to much memory and I've found out about the --max-stack-size & --max_executable_size options that are available within V8 to pass when invoking the file, but how should I combine these and possible other arguments to limit max memory usage to 1GB?

Upvotes: 23

Views: 57275

Answers (3)

Benny Code
Benny Code

Reputation: 54995

There are two ways to increase the maximum memory size of V8:

  1. Using a CLI option: node --max-old-space-size=4096 memory.js
  2. Using an env variable: NODE_OPTIONS='--max-old-space-size=4096' node memory.js

Here's a small script that shows you the memory usage of your application:

const process = require('node:process');

const used = process.memoryUsage().heapUsed / 1024 / 1024;
console.log(`This app is currently using ${Math.floor(used)} MB of memory.`);

Upvotes: 3

It's now, --max-old-space-size no technology limits...

for example node --max-old-space-size=8192 ./app. We create limit in 8Gb

Upvotes: 20

Josh
Josh

Reputation: 12732

https://github.com/joyent/node/wiki/FAQ

What is the memory limit on a node process?

Currently, by default v8 has a memory limit of 512mb on 32-bit systems, and 1gb on 64-bit systems. The limit can be raised by setting --max_old_space_size to a maximum of ~1gb (32-bit) and ~1.7gb (64-bit), but it is recommended that you split your single process into several workers if you are hitting memory limits.

Value is in megabytes, I believe.

Upvotes: 18

Related Questions