【问题标题】:High CPU Utilization for Meteor.jsMeteor.js 的高 CPU 使用率
【发布时间】:2014-08-26 02:41:59
【问题描述】:

meteor.js 0.82 应用程序正在 Ubuntu 14.04 服务器上运行,该服务器具有 2GB 内存和 2 个 cpu 内核。它是使用mup 部署的。但是 CPU 使用率非常高,htop 报告 2.72 平均负载。

问题:如何找出应用程序的哪个部分导致如此高的 CPU 使用率?我使用了 Kadira,但它没有显示任何占用大量 CPU 负载的东西。

Meteor 是否只使用单核?

【问题讨论】:

  • 您是通过捆绑包还是使用meteor run 运行您的应用程序?
  • @imslavko 我正在从捆绑中运行。捆绑包是使用mup 创建和上传的。
  • 回答你的一个问题:是的,meteor 只使用一个核心,因为它都是 node.js
  • 为什么会有6个mongo进程?
  • @AndrewMao 我不知道为什么有 6 个。我重新启动 mongod 仍然是 6 个。我使用的是 mongodb v2.6.3

标签: javascript node.js performance meteor forever


【解决方案1】:

我之前在使用 Meteor 0.8.2-0.8.3 时也遇到过类似的问题。以下是我为降低 CPU 使用率所做的一些工作,希望对您有所帮助。

  • 仔细检查您的函数,确保所有函数都有正确的return,并正确捕获错误
  • 尝试使用replicaSet和oplog mongo convert standalone to replica set
  • 编写脚本以在节点进程超过 100% 的 CPU 使用率时自动终止并重新生成节点进程
  • 通过启动 2 个进程(编辑您已经完成)并配置和设置负载平衡和反向代理来利用多核功能
  • 确保检查您的发布和订阅,并限制发送给客户的数据(避免使用 Collection.find(); 之类的内容)

我个人推荐Phusion Passenger,它使部署 Meteor 应用程序变得容易,并且我已经将它用于多个项目,没有任何大问题。

还有一件事,避免在 root(或特权用户)中运行进程,您应该在 www-data 等其他用户中运行您的应用程序。这是出于明显的安全原因。

附:而htop中显示的多个mongo进程是一个master进程下的线程,可以按F5在树模式下查看。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-09
    • 2014-07-16
    • 2014-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多