Passenger + Nginx + Node(Meteor)100%CPU使用率

时间:2017-02-07 22:09:18

标签: node.js meteor nginx passenger cpu-usage

我在Ubuntu 16.04.1 LTS(GNU / Linux 4.4.0-62-generic x86_64)下的AWS EC2实例上部署了使用Passenger + Nginx(作为follow)的Meteor应用程序

问题是它永久占用了大约100%的CPU使用率。

enter image description here

我试图切换到更强大的实例,甚至部署了一个空白的应用而不是我的 - 仍然是相同的。

任何想法在哪里挖掘? 感谢。

P.S。

无功/日志/ nginx的/ error.log中:

2017/02/08 08:04:20 [info] 18232#18232: Using 32768KiB of shared memory for nchan in /etc/nginx/nginx.conf:71
[ 2017-02-08 08:04:20.4123 18239/7fe378ac0780 age/Wat/WatchdogMain.cpp:1281 ]: Starting Passenger watchdog...
[ 2017-02-08 08:04:20.4281 18242/7f7adea7b780 age/Cor/CoreMain.cpp:1070 ]: Starting Passenger core...
[ 2017-02-08 08:04:20.4282 18242/7f7adea7b780 age/Cor/CoreMain.cpp:245 ]: Passenger core running in multi-application mode.
[ 2017-02-08 08:04:20.4309 18242/7f7adea7b780 age/Cor/CoreMain.cpp:820 ]: Passenger core online, PID 18242
[ 2017-02-08 08:04:20.4511 18248/7fdc44af6780 age/Ust/UstRouterMain.cpp:529 ]: Starting Passenger UstRouter...
[ 2017-02-08 08:04:20.4517 18248/7fdc44af6780 age/Ust/UstRouterMain.cpp:342 ]: Passenger UstRouter online, PID 18248
[ 2017-02-08 08:04:22.7236 18242/7f7ade98c700 age/Cor/SecurityUpdateChecker.h:464 ]: Security update check: no update found (next check in 24 hours)

npm install output:

> fibers@1.0.15 install /var/www/play/bundle/programs/server/node_modules/fibers
> node build.js || nodejs build.js

`linux-x64-48` exists; testing
Binary is fine; exiting

> meteor-dev-bundle@0.0.0 install /var/www/play/bundle/programs/server
> node npm-rebuild.js

{
  "meteor-dev-bundle": "0.0.0",
  "npm": "3.10.10",
  "ares": "1.10.1-DEV",
  "http_parser": "2.7.0",
  "icu": "56.1",
  "modules": "48",
  "node": "6.9.5",
  "openssl": "1.0.2k",
  "uv": "1.9.1",
  "v8": "5.1.281.89",
  "zlib": "1.2.8"
}
meteor-dev-bundle@0.0.0 /var/www/play/bundle/programs/server
├── amdefine@1.0.1
├── asap@2.0.5
├── fibers@1.0.15
├── meteor-promise@0.8.0
├─┬ node-gyp@3.4.0
│ ├─┬ fstream@1.0.10
│ │ └── inherits@2.0.3
│ ├─┬ glob@7.1.1
│ │ ├── fs.realpath@1.0.0
│ │ ├─┬ inflight@1.0.6
│ │ │ └── wrappy@1.0.2
│ │ ├── once@1.4.0
│ │ └── path-is-absolute@1.0.1
│ ├── graceful-fs@4.1.11
│ ├─┬ minimatch@3.0.3
│ │ └─┬ brace-expansion@1.1.6
│ │   ├── balanced-match@0.4.2
│ │   └── concat-map@0.0.1
│ ├─┬ mkdirp@0.5.1
│ │ └── minimist@0.0.8
│ ├─┬ nopt@3.0.6
│ │ └── abbrev@1.0.9
│ ├─┬ npmlog@3.1.2
│ │ ├─┬ are-we-there-yet@1.1.2
│ │ │ ├── delegates@1.0.0
│ │ │ └── readable-stream@2.2.2
│ │ ├── console-control-strings@1.1.0
│ │ ├─┬ gauge@2.6.0
│ │ │ ├── aproba@1.1.0
│ │ │ ├── has-color@0.1.7
│ │ │ ├── has-unicode@2.0.1
│ │ │ ├── object-assign@4.1.1
│ │ │ ├── signal-exit@3.0.2
│ │ │ ├─┬ string-width@1.0.2
│ │ │ │ ├── code-point-at@1.1.0
│ │ │ │ └─┬ is-fullwidth-code-point@1.0.0
│ │ │ │   └── number-is-nan@1.0.1
│ │ │ ├─┬ strip-ansi@3.0.1
│ │ │ │ └── ansi-regex@2.1.1
│ │ │ └── wide-align@1.1.0
│ │ └── set-blocking@2.0.0
│ ├─┬ osenv@0.1.4
│ │ ├── os-homedir@1.0.2
│ │ └── os-tmpdir@1.0.2
│ ├─┬ path-array@1.0.1
│ │ └─┬ array-index@1.0.0
│ │   ├─┬ debug@2.6.0
│ │   │ └── ms@0.7.2
│ │   └─┬ es6-symbol@3.1.0
│ │     ├── d@0.1.1
│ │     └─┬ es5-ext@0.10.12
│ │       └── es6-iterator@2.0.0
│ ├─┬ request@2.79.0
│ │ ├── aws-sign2@0.6.0
│ │ ├── aws4@1.6.0
│ │ ├── caseless@0.11.0
│ │ ├─┬ combined-stream@1.0.5
│ │ │ └── delayed-stream@1.0.0
│ │ ├── extend@3.0.0
│ │ ├── forever-agent@0.6.1
│ │ ├─┬ form-data@2.1.2
│ │ │ └── asynckit@0.4.0
│ │ ├─┬ har-validator@2.0.6
│ │ │ ├─┬ chalk@1.1.3
│ │ │ │ ├── ansi-styles@2.2.1
│ │ │ │ ├── escape-string-regexp@1.0.5
│ │ │ │ ├── has-ansi@2.0.0
│ │ │ │ └── supports-color@2.0.0
│ │ │ ├─┬ commander@2.9.0
│ │ │ │ └── graceful-readlink@1.0.1
│ │ │ ├─┬ is-my-json-valid@2.15.0
│ │ │ │ ├── generate-function@2.0.0
│ │ │ │ ├─┬ generate-object-property@1.2.0
│ │ │ │ │ └── is-property@1.0.2
│ │ │ │ ├── jsonpointer@4.0.1
│ │ │ │ └── xtend@4.0.1
│ │ │ └─┬ pinkie-promise@2.0.1
│ │ │   └── pinkie@2.0.4
│ │ ├─┬ hawk@3.1.3
│ │ │ ├── boom@2.10.1
│ │ │ ├── cryptiles@2.0.5
│ │ │ ├── hoek@2.16.3
│ │ │ └── sntp@1.0.9
│ │ ├─┬ http-signature@1.1.1
│ │ │ ├── assert-plus@0.2.0
│ │ │ ├─┬ jsprim@1.3.1
│ │ │ │ ├── extsprintf@1.0.2
│ │ │ │ ├── json-schema@0.2.3
│ │ │ │ └── verror@1.3.6
│ │ │ └─┬ sshpk@1.10.2
│ │ │   ├── asn1@0.2.3
│ │ │   ├── assert-plus@1.0.0
│ │ │   ├── bcrypt-pbkdf@1.0.1
│ │ │   ├─┬ dashdash@1.14.1
│ │ │   │ └── assert-plus@1.0.0
│ │ │   ├── ecc-jsbn@0.1.1
│ │ │   ├─┬ getpass@0.1.6
│ │ │   │ └── assert-plus@1.0.0
│ │ │   ├── jodid25519@1.0.2
│ │ │   ├── jsbn@0.1.0
│ │ │   └── tweetnacl@0.14.5
│ │ ├── is-typedarray@1.0.0
│ │ ├── isstream@0.1.2
│ │ ├── json-stringify-safe@5.0.1
│ │ ├─┬ mime-types@2.1.14
│ │ │ └── mime-db@1.26.0
│ │ ├── oauth-sign@0.8.2
│ │ ├── qs@6.3.0
│ │ ├── stringstream@0.0.5
│ │ ├─┬ tough-cookie@2.3.2
│ │ │ └── punycode@1.4.1
│ │ ├── tunnel-agent@0.4.3
│ │ └── uuid@3.0.1
│ ├── rimraf@2.5.4
│ ├─┬ tar@2.2.1
│ │ └── block-stream@0.0.9
│ └─┬ which@1.2.12
│   └── isexe@1.1.2
├─┬ node-pre-gyp@0.6.29
│ ├─┬ rc@1.1.6
│ │ ├── deep-extend@0.4.1
│ │ ├── ini@1.3.4
│ │ ├── minimist@1.2.0
│ │ └── strip-json-comments@1.0.4
│ ├── semver@5.2.0
│ └─┬ tar-pack@3.1.4
│   ├─┬ debug@2.2.0
│   │ └── ms@0.7.1
│   ├── fstream-ignore@1.0.5
│   ├── once@1.3.3
│   ├─┬ readable-stream@2.1.5
│   │ ├── buffer-shims@1.0.0
│   │ ├── core-util-is@1.0.2
│   │ ├── isarray@1.0.0
│   │ ├── process-nextick-args@1.0.7
│   │ ├── string_decoder@0.10.31
│   │ └── util-deprecate@1.0.2
│   └── uid-number@0.0.6
├── promise@7.1.1
├── semver@4.1.0
├── source-map@0.1.32
├── source-map-support@0.3.2
└── underscore@1.5.2

npm WARN meteor-dev-bundle@0.0.0 No description
npm WARN meteor-dev-bundle@0.0.0 No repository field.
npm WARN meteor-dev-bundle@0.0.0 No license field.

4 个答案:

答案 0 :(得分:1)

根据Meteor deployment guide,你必须特别使用Node 4.6.2。

  

根据您使用的Meteor版本,您应该安装   使用适当的安装过程的适当版本的节点   为您的平台。

     
      
  • Meteor 1.4.x节点4.6.2
  •   
  • Meteor 1.3.x及更早版本的节点0.10.43
  •   
     

如果在部署时使用不匹配的Node版本   应用程序,你会遇到错误!

Passenger docs也建议使用4.x版本的节点。

使用节点js v4.8.4对我有用。现在CPU很少超过10%。

答案 1 :(得分:0)

通过从头开始重新安装所有内容来修复它。仍然不知道发生了什么。

答案 2 :(得分:0)

它再次发生,大约每天一次: enter image description here

想知道Passenger + Nginx是否有其他选择?

答案 3 :(得分:0)

上述答案中提到的节点版本非常重要。您可以尝试安装nginx + pm2。它就像魅力一样。要了解有关pm2的更多信息,我已在此处回答。

How to run built of Meteor's sample app via Node