node.js杀死僵尸进程
来源:互联网 发布:七哥娃娃淘宝店铺 编辑:程序博客网 时间:2024/05/22 04:36
var cluster = require('cluster');
var http = require('http');
var numCPUs = require('os').cpus().length;
var rssWarn = (50* 1024* 1024),
heapWarn = (50* 1024* 1024);
var workers = {};
if (cluster.isMaster) {
for (var i= 0; i< numCPUs; i++) {
createWorker();
};
setInterval(function() {
var time= newDate().getTime()
for (pidin workers) {
if (workers.hasOwnProperty(pid)&&
workers[pid].lastCb+ 5000< time) {
console.log('Long running worker '+ pid + ' killed')
workers[pid].worker.kill()
delete workers[pid]
createWorker();
}
}
}, 1000)
} else {
// 服务器
http.Server(function(req,res) {
// 打乱 200 个请求中的 1 个
if (Math.floor(Math.random()* 200)=== 4) {
console.log('Stopped '+ process.pid+ ' from ever finishing')
while (true) {continue }
}
res.writeHead(200);
res.end('hello world from '+ process.pid+ '\n')
}).listen(8000)
// 每秒钟报告一次状态
setInterval(functionreport() {
process.send({
cmd:"reportMem",
memory:process.memoryUsage(),
process:process.pid
})
}, 1000)
};
function createWorker() {
var worker= cluster.fork()
console.log('Created worker: '+ worker.pid)
// 允许开机时间
workers[worker.pid]= { worker: worker, lastCb:new Date().getTime()- 1000 }
worker.on('message',function(m) {
if (m.cmd=== "reportMem") {
workers[m.process].lastCb= newDate().getTime()
if (m.memory.rss> rssWarn) {
console.log('Worker '+ m.process+ ' using too much memory.')
}
}
})
};
阅读全文
0 0
- node.js杀死僵尸进程
- 杀死僵尸进程
- 如何杀死僵尸进程?
- 杀死僵尸进程
- redhat杀死僵尸进程
- 杀死僵尸进程
- 如何杀死僵尸进程
- 杀死僵尸进程
- 杀死linux的僵尸进程
- linux 如何杀死僵尸进程
- kill(杀死)僵尸进程
- 如何杀死defunct僵尸进程
- 查看和杀死僵尸进程
- 查找并杀死僵尸进程
- Linux如何杀死僵尸进程
- 杀死僵尸进程的方法
- 进程状态解析-如何杀死僵尸进程
- 如何查看并杀死僵尸进程
- 我们承包了云栖大会阿里大数据专场,10月11日请你来
- js算日子的方法
- viewpager+fragment+tablayout适配器和fragment的一些应用
- 九度题目1049:字符串去特定字符
- HGDB不知道数据库用户密码的情况下,新库使用原密码创建该用户(适用于postgres)
- node.js杀死僵尸进程
- Java 字符串转float运算 float转字符串
- solr安装,以及建立索引关联数据库
- UVA 11524 Values whose Sum is 0
- android 超强大的图片选择器,支持超大图加载
- 工程师软技能
- 记VirtualBox下安装Ubantu16.04配置联网
- 按天时分秒倒计时
- 文章标题