Есть ли способ узнать использование% cpu для процесса node.js с кодом? так что, когда сервер node.js запущен и обнаруживает, что процессор находится на определенном%, тогда он выдает предупреждение или консольный вывод.
Как узнать, как использовать% CPU для процесса Node.js?
Ответ 1
Попробуйте посмотреть этот код: https://github.com/last/healthjs
Сетевая служба для получения ЦП удаленной системы и получения уведомлений об использовании ЦП...
Health.js обслуживает 2 основных режима: "режим потоковой передачи" и "режим событий". Режим потоковой передачи позволяет клиенту подключать и получать потоковые данные использования ЦП. Режим событий позволяет Health.js уведомлять удаленный сервер, когда использование ЦП достигает определенного порога. Оба режима могут запускаться одновременно...
Ответ 2
В системах * 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);
Ответ 3
Теперь вы можете использовать модуль os.
var os = require('os');
var loads = os.loadavg();
Это дает вам среднее значение нагрузки за последние 60 секунд, 5 минут и 15 минут. Это не дает вам использование процессора как%.
Ответ 4
см. node-usage для отслеживания процесса использования ЦП и памяти (а не системы)
Ответ 5
Используйте функцию узла process.cpuUsage (представлена в узле v6.1.0). Он показывает время, которое процессор потратил на процесс вашего узла. Пример взят из документации:
const previousUsage = process.cpuUsage();
// { user: 38579, system: 6986 }
// spin the CPU for 500 milliseconds
const startDate = Date.now();
while (Date.now() - startDate < 500);
// At this moment you can expect result 100%
const usage = process.cpuUsage(previousUsage);
const result = 100 * (usage.user + usage.system) / ((Date.now() - startDate) * 1000)
console.log(result);
// set 2 sec "non-busy" timeout
setTimeout(function() {
console.log(process.cpuUsage(previousUsage);
// { user: 514883, system: 11226 } ~ 0,5 sec
// here you can expect result about 20% (0.5s busy of 2.5s total runtime, relative to previousUsage that is first value taken about 2.5s ago)
}, 2000);
Ответ 6
Другим вариантом является использование node-red-contrib-os package