【问题标题】:Meteor js application cause stuck cpu 100%Meteor js应用程序导致cpu 100%卡住
【发布时间】:2016-06-29 19:11:43
【问题描述】:

我有一个小的流星 js 应用程序突然开始使用 100% cpu。我发现一些博客说 oplog 可能会导致 CPU 的高度使用,所以我使用以下方法禁用了它:

    meteor add disable-oplog

但它并没有改变任何东西。我在开发环境(通过“meteor”命令运行应用程序)和部署环境(使用 mup 远程运行应用程序)面临这个问题。 开发环境:ubuntu 14.0 2G 64Bit meteor 1.3 node js 0.10.45.

部署环境(droplet):ubuntu 14.0 512Mb 64Bit meteor 1.3 node js 0.10.45.

已安装的软件包:

监控过程:

【问题讨论】:

    标签: meteor


    【解决方案1】:

    我以前遇到过这个问题,但只是在一台服务器上运行过多生产 Meteor 开发环境的时间过长。

    这是我实施的交换解决方案。 Meteor 应用程序可能会使用大量内存,而 512MB 可能太少了。它一直在交换,奇怪地表现为 CPU 峰值。一旦我设置了更好的交换配置,一切都很好。

    这是在 Ubuntu 服务器上,我不记得是 14 还是 16。在 Digital Ocean 主机上(他们默认禁用交换,我首先提出的解决方案显然很糟糕)。

    这可能不是你的答案,但我正在写它,因为它肯定是可能的,而且很难弄清楚。

    【讨论】:

      【解决方案2】:

      也许你可以尝试使用 CPU 限制器 这是我创建的一个 bash 脚本 https://gist.github.com/cortezcristian/5ab4fdddcc573972d44873f1e97a2b88

      您需要先安装 cpu 限制器:

       sudo apt-get install cpulimit
       ps ax | grep node | grep meteor | grep -v grep | awk '{print $1}' > /tmp/my-app.pid
       cpulimit --p $(cat /tmp/my-app.pid) --limit 77
      

      之后,您可以使用 --limit 标志选择您想要的限制 50 / 100。

      【讨论】:

      • 谢谢,我已经将 digitalocean droplet 从 512Mb 扩展到 1Gb,我还对我的功能(返回和异常)进行了一些优化,现在再次部署它很好,当用户使用时,应用程序仍然达到 100%互动,我想这就是 Meteor 的本质,但它不再停留在那里。再次感谢
      猜你喜欢
      • 2014-08-29
      • 1970-01-01
      • 2016-09-16
      • 2014-06-03
      • 2014-05-10
      • 2011-11-02
      • 1970-01-01
      • 1970-01-01
      • 2016-06-26
      相关资源
      最近更新 更多