node.js - 计算nodejs中的cpu使用率
问题描述
我正在尝试计算运行我的 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])))
但这仍然显示了一个相似的数字,太高了。难道我做错了什么?
解决方案
我想你应该看看这个问题的答案。
提供的信息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);
推荐阅读
- visual-studio - 为什么我在 Visual Studio 中找不到 ResourceDictionary 模板?
- asp.net-core - int/string 的类型似乎导致错误
- java - 如何使用 JAVA/Groovy 从 Jmeter HTTP 采样器中删除空的 HTTP 请求参数
- common-lisp - make-symbol 创建一个带有尖号的符号,getf 无法访问它
- find - Shell alias input search syntax for a negated find search
- sql-server - SQLSERVER:BCP 使用数据库密钥导入和加密列
- javascript - Regex for custom decimal and thousand separator
- reactjs - React: uncontrolled/controlled input
- python - Plotting every 30th file of a list
- python - Group by with lists in Dataframe