对于所有请求,NodeJS应用程序的CPU使用百分比均为100%

时间:2017-10-11 14:07:28

标签: node.js express pm2

我有一个基于Express构建的NodeJS应用程序。我使用pm2来保持应用程序运行。有时,应用程序挂起,即页面只是继续加载。如果我尝试使用SSH连接到服务器,那么它也挂起并且不显示任何提示或任何内容。经过一段时间(大约1-2分钟),应用程序开始正常运行,我也可以使用终端中的SSH连接到服务器。

要查看是否是因为CPU使用率飙升,我将pm2进程与keymetrics.io连接起来。在这里,我注意到在每个请求(即使是简单的登录页面)上,CPU使用率图表达到100%然后恢复正常。

它没有挂起应用程序,但我很困惑,如果这是正常的行为,如果没有那么这可能是什么原因?从用户的角度来看,应用程序通常不会很慢。

1 个答案:

答案 0 :(得分:1)

嗯,是的,这是正常的。在任何Javascript运行的确切时刻,CPU都是100%占用。这是正常的和预期的。在任何给定时刻,CPU要么100%运行,要么根本不运行。中间没有。当你看到50%时,这只是一段时间内的移动平均线,包括一半时间的100%和一半时间的0%。因此,操作性问题是CPU处于100%的时间。如果是几毫秒,那没什么。如果是几分钟,这可能是一个问题。

大多数监控工具会随着时间的推移向您显示更多的移动平均线,因此您不会看到瞬间突发达到100%,但如果您的监控工具向您显示100%的瞬时突发,那么这是完全正常的。那是实际Javascript运行的时刻。

如果您在100%的时间内看到CPU占用了一段有意义的时间(例如分钟),那么这可能表明需要调查一个问题,因为在此期间您的服务器可能无法响应其他请求。但是,短暂而短暂的飙升至100%是正常的。