【发布时间】:2017-10-11 14:07:28
【问题描述】:
我有一个基于 Express 构建的 NodeJS 应用程序。我使用 pm2 来保持应用程序运行。有时,应用程序挂起,即页面只是继续加载。如果我尝试使用 SSH 连接到服务器,那么它也会挂起并且不显示任何提示或任何内容。一段时间后(大约 1-2 分钟),应用程序开始正常运行,我也可以在终端中使用 SSH 连接到服务器。
为了查看是否是因为 CPU 使用率飙升,我将我的 pm2 进程与 keymetrics.io 连接起来。在这里,我注意到在每个请求上(即使是简单的登录页面),CPU 使用率图表都会达到 100%,然后恢复正常。
它不会挂起应用程序,但我很困惑这是否是正常行为,如果不是,那么可能是什么原因造成的?从用户的角度来看,该应用程序通常不会很慢。
【问题讨论】:
-
我真的不明白没有人看你的代码怎么知道这是否正常。
-
@jfriend00 我的意思是,如果每个人都发生这种情况(即在 nodejs 应用程序监控方面更有经验等),每个请求都会使 CPU 图表瞬间达到 100%。
-
@MohitBhardwaj 您应该进一步调查,无论 JavaScript 是否正在运行,服务器锁定 1-2 分钟是不正常的。某些东西阻塞了所有内核并冻结了您的系统
-
@RomanMik 服务器被锁定的情况很少发生,例如大约两周一次。但是每个请求的 CPU 使用率都会达到 100%,所以这是我的主要问题。 jfriend00 在下面给出了解释,这对我目前的情况很有意义。