Node.js 什么是破坏进程内存?

Node.js 什么是破坏进程内存?,node.js,memory,process,heroku,Node.js,Memory,Process,Heroku,查看进程内存不足的速度。我重新启动了heroku,一秒钟后它仍在发生 我有一个node.js应用程序,在过去的几天里,我一直在毫无困难地开发它。它会进行一些mongodb调用,一些redis调用,但redis和mongo中的数据总量总和可能低于50kb 我如何追踪问题?看看您在它工作时和现在之间所做的更改,也许吧 如果不看代码,就很难说问题出在哪里,除了你显然在一遍又一遍地分配内存之外,这要么是一个循环,要么是一个没有适当退出条件的递归函数调用。看看你在它工作时和现在之间所做的更改,也许 如果不

查看进程内存不足的速度。我重新启动了heroku,一秒钟后它仍在发生

我有一个node.js应用程序,在过去的几天里,我一直在毫无困难地开发它。它会进行一些mongodb调用,一些redis调用,但redis和mongo中的数据总量总和可能低于50kb


我如何追踪问题?

看看您在它工作时和现在之间所做的更改,也许吧


如果不看代码,就很难说问题出在哪里,除了你显然在一遍又一遍地分配内存之外,这要么是一个循环,要么是一个没有适当退出条件的递归函数调用。

看看你在它工作时和现在之间所做的更改,也许


如果不看代码,就很难说问题出在哪里,除非你显然在反复分配内存,这要么是循环,要么是没有适当退出条件的递归函数调用。

即使是你的循环,但是超过内存配额是大多数开发人员在heroku中面临的一个常见问题。它与节点的垃圾收集器有关。我把我的答案放在这里是为了帮助那些可能一直在寻找同样问题的人

节点(V8)使用一个懒惰贪婪的垃圾收集器。由于其默认限制约为1.5 GB,它有时会等到完全需要时才回收未使用的内存。如果您的内存使用正在增加,则可能不是泄漏,而是节点通常的懒惰行为。 为了更好地控制应用程序的垃圾收集器,您可以在
程序文件中为V8提供标志:

如果您的应用程序正在环境中运行,这一点尤为重要 可用内存小于1.5 GB。例如,如果你愿意 要将节点裁剪为512 MB容器,请尝试:


从这里开始

尽管这是您的循环,但内存配额超出是大多数开发人员在heroku中面临的常见问题。它与节点的垃圾收集器有关。我把我的答案放在这里是为了帮助那些可能一直在寻找同样问题的人

节点(V8)使用一个懒惰贪婪的垃圾收集器。由于其默认限制约为1.5 GB,它有时会等到完全需要时才回收未使用的内存。如果您的内存使用正在增加,则可能不是泄漏,而是节点通常的懒惰行为。 为了更好地控制应用程序的垃圾收集器,您可以在
程序文件中为V8提供标志:

如果您的应用程序正在环境中运行,这一点尤为重要 可用内存小于1.5 GB。例如,如果你愿意 要将节点裁剪为512 MB容器,请尝试:


从这里拍摄

是的,我在这里发布后就回去尝试了。我把它缩小到了一个有缺陷的for()循环,但我不明白为什么它会在我的生命中无休止地运行,看起来就像其他循环一样。是的,我在这里发布后立即返回并尝试了它。我把它缩小为一个有缺陷的for()循环,但我不明白为什么它会像其他循环一样,在我的一生中无休止地运行。
2012-07-20T03:04:50+00:00 heroku[web.1]: Process running mem=546M(106.8%)
2012-07-20T03:04:50+00:00 heroku[web.1]: Error R14 (Memory quota exceeded)
2012-07-20T03:05:11+00:00 heroku[web.1]: Process running mem=583M(113.9%)
2012-07-20T03:05:11+00:00 heroku[web.1]: Error R14 (Memory quota exceeded)
2012-07-20T03:05:30+00:00 heroku[web.1]: Process running mem=611M(119.4%)
2012-07-20T03:05:30+00:00 heroku[web.1]: Error R14 (Memory quota exceeded)
2012-07-20T03:05:50+00:00 heroku[web.1]: Process running mem=611M(119.4%)
2012-07-20T03:05:50+00:00 heroku[web.1]: Error R14 (Memory quota exceeded)
2012-07-20T03:06:10+00:00 heroku[web.1]: Process running mem=605M(118.3%)
2012-07-20T03:06:10+00:00 heroku[web.1]: Error R14 (Memory quota exceeded)
2012-07-20T03:06:30+00:00 heroku[web.1]: Process running mem=689M(134.6%)
2012-07-20T03:06:30+00:00 heroku[web.1]: Error R14 (Memory quota exceeded)
2012-07-20T03:06:37+00:00 heroku[router]: Error H12 (Request timeout) -> POST vivid-night-1834.herokuapp.com/ dyno=web.1 queue= wait= service=30000ms status=503 bytes=0
2012-07-20T03:06:51+00:00 heroku[web.1]: Process running mem=909M(177.7%)
2012-07-20T03:06:51+00:00 heroku[web.1]: Error R14 (Memory quota exceeded)
2012-07-20T03:07:10+00:00 heroku[web.1]: Process running mem=909M(177.7%)
web: node --optimize_for_size --max_old_space_size=460 --gc_interval=100 server.js