node.js CPU使用率峰值

djmepvbi  于 2022-11-29  发布在  Node.js
关注(0)|答案(1)|浏览(103)

bounty将在4天后过期。回答此问题可获得+150的声望奖励。Sujith S Manjavana正在寻找来自知名来源的答案

我有一个在群集模式下运行的express.js应用程序我使用PM2来管理这个应用程序。它通常使用不到3%的CPU。但是,有时CPU使用率会在短时间内达到100(不到一分钟)。我无法重现这个问题。这种情况一天或两天才发生一次。有没有办法使用PM2找出是哪个函数或路由导致CPU突然出现峰值?谢谢。

dtcbnfnu

dtcbnfnu1#

我的回答完全是基于我对这个主题的经验
1.在投入生产之前,进行如下本地测试:

  • 压力测试。
  • 寿命测试。

对于这两个测试,尝试使用像JMeter这样的工具,在那里你可以放置一个/多个端点,并在一段时间内运行它们的负载,同时监控CPU和内存的使用情况。
1.如果一切正常,尝试停止测试并手动运行API,尝试监视其行为,如果API本身存在memory leak,这将对您有所帮助
1.您的应用是否经历了.map().reduce()的大型阵列?
1.您的应用在reboot之后是否运行得更好了?如果是,那么您需要怀疑Express应用正在经历memory leak和垃圾收集器试图清理混乱。
1.如果可能的话,尝试使用fastify重写应用程序,就个人而言,这并没有使应用程序更快,但能够处理更多的请求。

相关问题