bounty将在4天后过期。回答此问题可获得+150的声望奖励。Sujith S Manjavana正在寻找来自知名来源的答案。
我有一个在群集模式下运行的express.js
应用程序我使用PM2
来管理这个应用程序。它通常使用不到3%的CPU。但是,有时CPU使用率会在短时间内达到100(不到一分钟)。我无法重现这个问题。这种情况一天或两天才发生一次。有没有办法使用PM2找出是哪个函数或路由导致CPU突然出现峰值?谢谢。
bounty将在4天后过期。回答此问题可获得+150的声望奖励。Sujith S Manjavana正在寻找来自知名来源的答案。
我有一个在群集模式下运行的express.js
应用程序我使用PM2
来管理这个应用程序。它通常使用不到3%的CPU。但是,有时CPU使用率会在短时间内达到100(不到一分钟)。我无法重现这个问题。这种情况一天或两天才发生一次。有没有办法使用PM2找出是哪个函数或路由导致CPU突然出现峰值?谢谢。
1条答案
按热度按时间dtcbnfnu1#
我的回答完全是基于我对这个主题的经验
1.在投入生产之前,进行如下本地测试:
对于这两个测试,尝试使用像JMeter这样的工具,在那里你可以放置一个/多个端点,并在一段时间内运行它们的负载,同时监控CPU和内存的使用情况。
1.如果一切正常,尝试停止测试并手动运行API,尝试监视其行为,如果API本身存在
memory leak
,这将对您有所帮助1.您的应用是否经历了
.map()
、.reduce()
的大型阵列?1.您的应用在
reboot
之后是否运行得更好了?如果是,那么您需要怀疑Express应用正在经历memory leak
和垃圾收集器试图清理混乱。1.如果可能的话,尝试使用fastify重写应用程序,就个人而言,这并没有使应用程序更快,但能够处理更多的请求。