2012-07-20 68 views
1
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%) 

看看進程內存耗盡的速度。我跑了heroku重新啓動,它仍然在一秒後發生。什麼是破壞進程內存?

我有一個node.js應用程序,我一直在努力沒有任何困難,真的在過去幾天。它使一些mongodb調用,一些redis調用,但redis和mongo中的數據總量可能不到50kb。

如何追蹤問題?

回答

2

看看您在工作和現在之間所做的更改,或許?

在沒有看到代碼的情況下,除非您明確地做了一些反覆分配內存的操作,否則很難說明問題的原因,因此這是循環或遞歸函數調用沒有適當的退出條件。

+0

採取是的,我沒有回去嘗試之後我張貼在這裏。我把它縮小到了()循環的錯誤,但我無法弄清楚爲什麼它會在我的生活中無休止地發生,看起來像任何其他循環。 – 2012-07-20 03:41:26

+1

也許你可以發佈代碼,社區可以幫助你嗎? – Alfred 2012-10-26 06:28:58

2

即使這是你的循環,但超過內存配額是大多數開發人員與heroku面臨的常見問題。它與Node的垃圾收集器有關。我在這裏回答我的答案,以幫助那些可能一直在尋找相同問題的人。

節點(V8)使用懶惰和貪婪的垃圾收集器。由於其默認限制約爲1.5 GB,它有時會一直等到完全恢復未使用的內存之前。如果你的內存使用量在增加,它可能不是泄漏 - 而是節點通常的懶惰行爲。 要在你的應用程序的垃圾收集器獲得更多的控制,你可以在你Procfile提供標誌來V8:

,這一點尤其重要,如果你的應用程序的使用環境 小於1.5 GB的可用內存運行。舉例來說,如果你想 定製節點到512 MB的容器中,嘗試:

web: node --optimize_for_size --max_old_space_size=460 --gc_interval=100 server.js 

從這裏https://blog.heroku.com/node-habits-2016