node.js - 计算nodejs中的cpu使用率

标签 node.js cpu-usage

我正在尝试计算运行我的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])))

但这仍然显示出一个类似的数字,但这个数字太高了。我做错了什么吗?

最佳答案

我认为你应该查看 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);

关于node.js - 计算nodejs中的cpu使用率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54827068/

相关文章:

visual-studio-code - 使用大量 CPU 的 Visual Studio Code

.net - 计算CPU使用率: Code improvement

angularjs - Angular2 和 TSD 出现 "Duplicate identifier"错误

node.js - Socket.IO - 如何在 socket.io 1.3.6 中使用 socketID 关闭套接字?

node.js - 如何测试使用 sinon.spy 调用的 socket.io 事件

kubernetes - 如何使用指标服务器而不是堆积器查看HPA中的CPU使用率

cpu-usage - SGE节点中的负载可以超过CPU数量吗?

javascript - 如何在 npm 中删除 dedupe 选项

javascript - Twilio Node.js API - 使用 'Dial' 转发调用时出现问题

performance - Tomcat 尖峰并消耗所有可用的 CPU