我有一个小的流星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。
已安装的软件包:
监控过程:
答案 0 :(得分:1)
之前我遇到过这个问题,但只是在一台服务器上运行太多生产Meteor开发环境太久了。
这是我实施的交换解决方案。 Meteor应用程序可以使用大量内存,512MB可能太少。它一直在交换,奇怪地显示为CPU峰值。一旦我提出了更好的交换配置,一切都很好。
这是在Ubuntu服务器上,我不记得它是14还是16.在Digital Ocean托管(他们默认禁用Swap,我先放置的解决方案显然很糟糕)。
这可能不太可能是你的答案,但我正在写它,因为它肯定是可能的,而且很难弄明白。
答案 1 :(得分:0)
也许你可以尝试使用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。