В * системах nix можно получить статистику процесса, прочитав виртуальный файл / proc / [pid] / stat.
Например, это будет проверять загрузку процессора каждые десять секунд и выводить на консоль, если она превышает 20%. Он работает путем проверки количества тактов процессора, используемых процессом, и сравнения значения со вторым измерением, выполненным через одну секунду. Разница заключается в количестве тиков, использованных процессом в течение этой секунды. В системах 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);