Nodejs 如何获取 cpu 使用率百分比?

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

所以大家这是我的代码:

import os from "os";
import process from "process";

export const getCpuInfo = () => {
    const cpuUsage = process.cpuUsage();
    const totalCpuUsage = cpuUsage.user + cpuUsage.system;
    const numCPUs = os.cpus().length;
  
    // Calculate the total CPU time in seconds
    const totalCpuTime = process.uptime();
  
    // Calculate the CPU usage percentage
    const cpuUsagePercentage = (totalCpuUsage / (totalCpuTime * 1e6)) * 100;
  
  let modelName;
  let modelSpeed;
  let displayed = false;
  os.cpus().forEach(cpu => {
    if (displayed) return;
    modelName = cpu.model;
    modelSpeed = cpu.speed;
    return displayed = true;
  })

  return {
    cpuSpeed: formatHertz(modelSpeed),
    cpuModel: modelName,
    cpuCores: numCPUs,
    cpuParallelism: os.availableParallelism(),
    cpuUsage: cpuUsagePercentage.toFixed(2) // Format as a percentage with 2 decimal places
  }
}

function formatHertz(megaHertz) {
  try {
    let hertz = Number(megaHertz);
    let Ghz = hertz / 1000;
    return `${Ghz.toFixed(2)} Ghz`; // Round to 2 decimal places
  } catch (err) {
    return err;
  }
}

function convertNumberFormat(number) {
    const megahertz = number / 1e6; // Convert to megahertz
    return megahertz.toFixed(2); // Return with 2 decimal places
  }

但是我实际上无法获取CPU使用率

我尝试使用第三方库,但它们没有按我想要的方式工作。

我希望CPU使用率百分比以如下格式显示:22.23%

任何人都可以帮我解决上面的代码吗?

顺便说一句我正在使用Windows

提前致谢

javascript node.js operating-system backend node-modules
1个回答
0
投票

方法 os.availableParallelism():根据您使用的 Node.js 版本,函数 os.availableParallelism() 可能不存在。如果它导致问题,您可以将其替换为 os.cpus().length

© www.soinside.com 2019 - 2024. All rights reserved.