node.js - 当 Amazon EC2 上的 CPU 使用率达到 100% 并且服务器停止时如何重新启动我的 Node js 应用程序

标签 node.js ubuntu amazon-web-services amazon-ec2 forever

目前我正在使用 forever处理 EC2 上的崩溃等,但我想要一些方法来管理在服务器上的 CPU 使用率达到 100% 时重新启动应用程序。

它现在的工作方式是,当 CPU 使用率达到 100% 时,应用程序停止运行,如果我没有注意到亚马逊在我的邮件上发送的警报,应用程序将保持关闭状态,直到我手动重新启动 再次使用 forever .

我想要的是一种在 CPU 使用率达到 90% 或更高时重新启动应用程序的方法,我应该使用另一个模块而不是 forever 吗?如果是的话有什么建议吗?

最佳答案

我建议您减少 CPU 使用率,但是,我使用了类似的技巧,但在内存使用率过高时重新启动(由于非常小的内存泄漏)

你需要模块“用法”

var usage       = require('usage');

然后:

CHECK_CPU_USAGE_INTERVAL    = 1000*60; // every minute
HIGH_CPU_USAGE_LIMIT        = 90; // percentage

autoRestart = setInterval(function()
{
    usage.lookup(process.pid, function(err, result) 
    {
        if(!err)
        {
            if(result.cpu > HIGH_CPU_USAGE_LIMIT)
            {
                // log
                console.log('restart due to high cpu usage');

                // restart because forever will respawn your process
                process.exit();
            }
        }
    });
}, CHECK_CPU_USAGE_INTERVAL);

关于node.js - 当 Amazon EC2 上的 CPU 使用率达到 100% 并且服务器停止时如何重新启动我的 Node js 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25976783/

相关文章:

ubuntu - 如何使用命令行中的 p4 为 perforce 工作区设置行尾设置?

linux - Bash 导出命令

java - 如何列出亚马逊 s3 中的 key ?

amazon-web-services - 对 Elastic Beanstalk 配置设置中的 S3 对象的访问被拒绝

swift - 使用 AWS Cognito 自动登录

javascript - 如何编写通过websocket发送的文件?

node.js - 如何进行更新突变 - GraphQL(加上 mongoDB)

javascript - typescript : unable to read a property of an object even though it's there

node.js - 如果使用 Promise 存在对象,则 AWS 签名 url

linux - 如何在 Linux 中创建自定义命令?