typescript 如何正确获取有关CPU使用率的信息?

iaqfqrcu  于 2022-11-18  发布在  TypeScript
关注(0)|答案(1)|浏览(272)

我想从我的NodeJS应用程序中获取一些指标,比如用户、系统和总使用情况的cpuUsage。下面是我的简单代码:

private lastCpuUsage = process.cpuUsage();

getCpuUsage() {
    const cpuUsage = process.cpuUsage();

    const userUsageMicros = cpuUsage.user - this.lastCpuUsage.user;
    const systemUsageMicros = cpuUsage.system - this.lastCpuUsage.system;

    this.lastCpuUsage = cpuUsage;

    console.log({
      cpuUserUsage: userUsageMicros / 1e6, //1000000
      cpuSystemUsage: systemUsageMicros / 1e6,
      cpuTotalUsage: (userUsageMicros + systemUsageMicros) / 1e6
    })
}

下面是一个输出示例:

{
    "cpuUserUsage": 0.016,
    "cpuSystemUsage": 0.031,
    "cpuTotalUsage": 0.047
}

现在我有两个问题
1.如何获得cpuUsage的百分比单位?
1.此输出是针对我的应用程序所在的整个计算机,还是仅针对我从中下载此数据的特定应用程序?如果仅针对我的应用程序,我如何从整个系统获取数据?
谢谢你的帮助!

y3bcpkx1

y3bcpkx11#

如果所有CPU都在同一个规范中,并且进程只使用一个CPU,则尝试使用os模块。节点操作系统

const os = require('os');

const [cpu] = os.cpus();

const total = Object.values(cpu.times).reduce(
    (acc, val) => acc + val, 0
);

const { user, system } = process.cpuUsage();
const percentage = 100 * 1000 * (user + system) / total ;

console.log(percentage);

相关问题