首页 > 解决方案 > 为什么 CPU 使用率达到 80% 时 npm 包 pm2 无法重启?

问题描述

当 CPU Utilization 达到 80% 时,Pm2 无法重新启动。我注意到这主要发生在我发送邮件时。

您认为此问题与内存泄漏或 nodemailer 有关吗?

在这里,我添加了我的代码。

var smtpTransport = nodeMailer.createTransport({ host: 'myhostname', port: 465, secure:true, tls:{ rejectUnauthorized:false }, auth: { user: <>, pass: <> } })

var mailOptions = {

          from:       <<email>>,
          to:   <<email>>,
          subject:  '<<my text>>',
          html:     <<text>>
        };

        smtpTransport.sendMail(mailOptions, function(err,res){

            if(err)
            {
                console.log(err);
            }else{
                console.log(res.response);
            }
        });

标签: node.jspm2

解决方案


Pm2 在达到高 CPU 时不会重新启动您的应用程序,您只能指定 Pm2 将重新启动您的应用程序的内存限制,如文档http://pm2.keymetrics.io/docs/usage/memory-limit/中所述.

话虽这么说,当您的服务器因执行工作负载而达到高 CPU 使用率时崩溃并不是可行的方法。

当您的服务器达到其容量的 80% 时,要么意味着您有未优化的代码/泄漏,要么您需要扩展。


推荐阅读