Heroku上的重复Logentries崩溃通知(NodeJS服务器)

时间:2015-12-05 21:33:05

标签: node.js heroku logentries

我在Heroku上运行基于NodeJS的应用服务器,今天早上它开始反复崩溃。它运行一个传统的1x dyno(即免费套餐)。 Heroku由于闲置而将其降低,这很好,但是它进入了一个状态,我每隔几秒就会无限期地收到来自Logentries的崩溃通知。

我可以通过手动将服务器降低到0 dynos,然后再回到1来停止它。

请注意,服务器执行的第一件事就是向console.log打印一条调试消息,因此我在所有这些崩溃消息中都没有看到这一消息表明我的应用程序不是'甚至被运行。

知道可能导致这种情况的原因吗?

02 <45>1 2015-12-05T21:03:30.039646+00:00 heroku web.1 - - Idling
125 <45>1 2015-12-05T21:03:30.040156+00:00 heroku web.1 - - State changed from up to down
131 <45>1 2015-12-05T21:03:34.298780+00:00 heroku web.1 - - Stopping all processes with SIGTERM
301 <158>1 2015-12-05T21:03:35.730386+00:00 heroku router - - at=info method=GET path="/" host=<server name redacted>.herokuapp.com request_id=e3c6cdbf-3012-4e5e-ab89-24e8c2eb0e03 fwd="50.0.151.247" dyno=web.1 connect=0ms service=2085875ms status=101 bytes=189
310 <158>1 2015-12-05T21:03:36.299732+00:00 heroku router - - at=error code=H10 desc="App crashed" method=GET path="/" host=<server name redacted>.herokuapp.com request_id=35c719d9-5153-49e8-a640-91f848f853b9 fwd="50.0.151.247" dyno= connect= service= status=503 bytes=
310 <158>1 2015-12-05T21:03:36.730513+00:00 heroku router - - at=error code=H10 desc="App crashed" method=GET path="/" host=<server name redacted>.herokuapp.com request_id=138f048e-4229-4e9f-9e56-8d0d9e691734 fwd="50.0.151.247" dyno= connect= service= status=503 bytes=
126 <45>1 2015-12-05T21:03:36.690366+00:00 heroku web.1 - - Process exited with status 143
310 <158>1 2015-12-05T21:03:40.160167+00:00 heroku router - - at=error code=H10 desc="App crashed" method=GET path="/" host=<server name redacted>.herokuapp.com request_id=0a451a1b-04f2-4f59-bc1e-abc1f2599607 fwd="50.0.151.247" dyno= connect= service= status=503 bytes=
310 <158>1 2015-12-05T21:03:40.586679+00:00 heroku router - - at=error code=H10 desc="App crashed" method=GET path="/" host=<server name redacted>.herokuapp.com request_id=c7681cce-f486-447b-9f76-b36a8db3570b fwd="50.0.151.247" dyno= connect= service= status=503 bytes=
310 <158>1 2015-12-05T21:03:44.024709+00:00 heroku router - - at=error code=H10 desc="App crashed" method=GET path="/" host=<server name redacted>.herokuapp.com request_id=ddd8187f-c8c7-45aa-8add-863b17bdfc5f fwd="50.0.151.247" dyno= connect= service= status=503 bytes=

1 个答案:

答案 0 :(得分:0)

事实证明,我使用的节点版本(4.2.1)试图使用超过传统1x dyno上可用的512MB内存(这就是为什么Node在执行甚至第一行之前仍然崩溃的原因我的服务器代码)。解决方案是修改Procfile以限制Node的内存使用量以适应可用内存。 Procfile现在看起来像这样:

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

(请注意,为了保守一点,我的习惯性愿望是500而不是512)。