我创建了一个非常简单的Meteor(v1.0.1,开发模式)Web应用程序,它位于登台服务器上,因此只有少数用户可以访问它。服务器在Rackspace上,有1GB内存。
当我从周末假期回来时,我收到了这个错误:
FATAL ERROR: Evacuation Allocation failed - process out of memory Aborted (core dumped)
我重新启动了应用程序并运行了top
。我看到我只留下了70MB的内存,前三个进程来自meteor,占据了近60%的内存。第二个进程(15517)在内存使用率方面不断提高(9.7,首次启动时,大约一小时内达到10.6),我感觉它可能会导致内存不足(OOM)错误。 / p>
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
15445 root 20 0 1367736 443624 2792 S 10.3 43.8 6:09.26 [dir]/.meteor/packages/meteor-tool/.1.0.36.1rumazb++os.linux.+
15517 root 20 0 830796 107040 3172 R 3.0 10.6 1:07.75 [dir]/.meteor/packages/meteor-tool/.1.0.36.1rumazb++os.linux.+
15468 root 20 0 813608 36348 1824 S 0.3 3.6 0:04.82 [dir]/.meteor/packages/meteor-tool/.1.0.36.1rumazb++os.linux.+
我已经在different question中询问了这些流程的作用,但在这个问题中,我想关注我该怎么做才能减少Meteor的内存使用量?是有一种方法可以限制可以为Meteor分配多少内存,以防止这种致命错误?毕竟这是一个非常简单的应用程序。