在 Heroku 上使用 foreverjs 和 运行 避免 nodejs 应用程序产生垃圾
Avoid garbage with nodejs app using foreverjs and running on Heroku
根据 Heroku doc, to avoid garbage,您可以在 Procfile 中为 V8 提供标志:
web: node --optimize_for_size --max_old_space_size=460 --gc_interval=100 server.js
但是,我的应用程序使用 foreverjs,我在 Procfile 中使用以下指令:
web: ./node_modules/.bin/forever -m 5 server.js
有没有办法提供像 --max_old_space_size
或 gc_interval=100
这样的标志并仍然使用 foreverjs?
我不会永远使用 pm2,但似乎会永远使用此语法:
usage: forever [action] [options] SCRIPT [script-options]
我会尝试将它们放在脚本选项部分:
./node_modules/.bin/forever -m 5 server.js --max_old_space_size=460 --gc_interval=100
无论如何,我不会强制 gc 的时间...
max_old_space_size 应该与您的节点进程可用的 RAM 一致,在您的情况下,如果您的节点进程占用超过 ~500M 的 RAM,它应该自己触发 gc 调用。
根据 Heroku doc, to avoid garbage,您可以在 Procfile 中为 V8 提供标志:
web: node --optimize_for_size --max_old_space_size=460 --gc_interval=100 server.js
但是,我的应用程序使用 foreverjs,我在 Procfile 中使用以下指令:
web: ./node_modules/.bin/forever -m 5 server.js
有没有办法提供像 --max_old_space_size
或 gc_interval=100
这样的标志并仍然使用 foreverjs?
我不会永远使用 pm2,但似乎会永远使用此语法:
usage: forever [action] [options] SCRIPT [script-options]
我会尝试将它们放在脚本选项部分:
./node_modules/.bin/forever -m 5 server.js --max_old_space_size=460 --gc_interval=100
无论如何,我不会强制 gc 的时间... max_old_space_size 应该与您的节点进程可用的 RAM 一致,在您的情况下,如果您的节点进程占用超过 ~500M 的 RAM,它应该自己触发 gc 调用。