计算nodejs中的cpu使用率

问题描述 投票:1回答:1

我正在尝试计算运行我的nodejs应用程序的计算机上的CPU使用率,但由于某种原因,输出比我在ubuntu上的系统监视器向我显示的要高很多。这是我的代码:

const cores = _.map(os.cpus(), 'times')
const free = _.sumBy(cores, 'idle')
const total = _.sumBy(cores, c => _.sum(_.values(c)))
const usage = free * 100 / total
console.log(usage)

输出约89%,而系统监视器显示我的所有CPU都低于30%。我也试过在这样的一个核心上计算它:

console.log(cores[1].idle / _.sum(_.values(cores[1])))

但是这仍然显示出类似的数字太高了。难道我做错了什么?

node.js cpu-usage
1个回答
0
投票

我想你应该查看this question的答案。

os.cpu()提供的信息是自启动以来的平均使用情况。要获得有关CPU当前使用情况的信息,您可以执行以下操作:

let cores = _.map(os.cpus(), 'times');
let freeBefore = _.sumBy(cores, 'idle');
let totalBefore = _.sumBy(cores, c => _.sum(_.values(c)));

setTimeout(() => {
  let cores = _.map(os.cpus(), 'times');
  let free = _.sumBy(cores, 'idle') - freeBefore;
  let total = _.sumBy(cores, c => _.sum(_.values(c))) - totalBefore;

  let usage = free * 100 / total;
  console.log(usage);
}, 500);
© www.soinside.com 2019 - 2024. All rights reserved.