我看到有几个节点包允许您查找特定进程的使用情况,例如 https://www.npmjs.com/package/usage
我正在尝试获取整体服务器使用情况/统计信息(CPU 和内存),而不仅仅是一个特定的进程。甚至可能使用磁盘空间。
我目前无法找到类似的东西,这可能吗?
原文由 J05H 发布,翻译遵循 CC BY-SA 4.0 许可协议
我看到有几个节点包允许您查找特定进程的使用情况,例如 https://www.npmjs.com/package/usage
我正在尝试获取整体服务器使用情况/统计信息(CPU 和内存),而不仅仅是一个特定的进程。甚至可能使用磁盘空间。
我目前无法找到类似的东西,这可能吗?
原文由 J05H 发布,翻译遵循 CC BY-SA 4.0 许可协议
由于我没有找到解决此问题的代码,并且不想仅仅为某些代码行依赖其他包,因此我编写了一个函数来计算两个连续函数调用之间的平均 CPU 负载。我假设 t_idle + t_user + t_sys = total cpu time
结果与我的 Windows 任务管理器的结果有点相似,但是,使用对我来说似乎不太敏感(例如,音乐播放比 Windows 任务管理器增加了更多的 cpu 负载)。如果我的假设是错误的,请纠正我。
const os = require('os');
// Initial value; wait at little amount of time before making a measurement.
let timesBefore = os.cpus().map(c => c.times);
// Call this function periodically e.g. using setInterval,
function getAverageUsage() {
let timesAfter = os.cpus().map(c => c.times);
let timeDeltas = timesAfter.map((t, i) => ({
user: t.user - timesBefore[i].user,
sys: t.sys - timesBefore[i].sys,
idle: t.idle - timesBefore[i].idle
}));
timesBefore = timesAfter;
return timeDeltas
.map(times => 1 - times.idle / (times.user + times.sys + times.idle))
.reduce((l1, l2) => l1 + l2) / timeDeltas.length;
}
原文由 Ercksen 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答2.6k 阅读✓ 已解决
2 回答1k 阅读✓ 已解决
1 回答962 阅读✓ 已解决
2 回答1.2k 阅读
1 回答1.1k 阅读✓ 已解决
2 回答639 阅读✓ 已解决
2 回答1.7k 阅读
本机模块 os 可以为您提供一些内存和 cpu 使用情况统计信息。
cpus() 函数为您提供平均值,但您可以使用公式和间隔来计算当前使用情况,如 本 答案中所述。
还有一个包可以为您执行此操作,称为 os-utils 。
取自 github 上的示例:
有关磁盘的信息,您可以使用 diskspace