Zack Bloom..
28
在*nix系统上,可以通过读取/ proc/[pid]/stat虚拟文件来获取进程统计信息.
例如,这将每十秒检查CPU使用率,如果超过20%则打印到控制台.它的工作原理是检查过程使用的cpu滴答数,并将该值与一秒钟后的第二次测量值进行比较.差异是该过程在该秒期间使用的滴答数.在POSIX系统上,每秒有10000个刻度(每个处理器),因此除以10000得到一个百分比.
var fs = require('fs');
var getUsage = function(cb){
fs.readFile("/proc/" + process.pid + "/stat", function(err, data){
var elems = data.toString().split(' ');
var utime = parseInt(elems[13]);
var stime = parseInt(elems[14]);
cb(utime + stime);
});
}
setInterval(function(){
getUsage(function(startTime){
setTimeout(function(){
getUsage(function(endTime){
var delta = endTime - startTime;
var percentage = 100 * (delta / 10000);
if (percentage > 20){
console.log("CPU Usage Over 20%!");
}
});
}, 1000);
});
}, 10000);