Meteor.js的高CPU利用率
一个meteor.js 0.82应用程序运行在具有2GB内存和2个CPU核心的Ubuntu 14.04服务器上。 它使用mup
进行部署。 但是CPU利用率非常高, htop
报告平均2.72
负载。
问题:如何找出应用的哪个部分导致如此高的CPU利用率? 我用卡迪拉,但它并没有透露任何东西占用了很多的CPU负载afaik。
Meteor是否只使用一个核心?
我之前也有一个和Meteor 0.8.2-0.8.3类似的问题。 以下是我已经做了减lessCPU使用率,希望你会发现它有用。
- 仔细检查你的函数,确保所有的函数都有正确的
return
,并且正确地捕获错误 - 尝试使用replicaSet和oplog 将mongo转换为独立副本集
- 编写脚本来自动杀死和重新绘制节点进程,如果它超过100%的CPU使用率
- 利用多核function启动2个进程( 编辑已经完成)并configuration和设置负载平衡和反向代理
- 确保审查你的发布和订阅,并限制什么数据发送到客户端(只需避免像
Collection.find();
)
我个人推荐Phusion Passenger ,它可以轻松部署Meteor应用程序,而且我已经将它用于几个项目,没有任何重大问题。
还有一件事,避免在root (或特权用户)运行进程,你应该运行在另一个用户,如万维网数据的应用程序。 这是明显的安全原因。
PS和htop中显示的多个mongo进程是主进程下的线程,您可以按F5
以树形模式查看它。