我正在尝试通过NodeJS的CPU使用率从服务器中获取前5或10个应用。我可以通过('os')lib获取所有内存,磁盘属性,但是有一种方法可以获取特定应用程序的内存和CPU使用率。不适用于所有系统。
致谢
答案 0 :(得分:1)
您可以通过多种方式获得该信息,这里使用 current-processes 包(实际上,这是该库的用法示例):
const _ = require('lodash');
const ps = require('current-processes');
ps.get((err, processes) => {
if (err) throw err
let sorted = _.sortBy(processes, 'cpu');
let top5 = sorted.reverse().splice(0, 5);
console.log(top5);
});
这将输出按cpu用法排序的前5个进程。
实际上,该库获取了所有流程,我们只是过滤结果以获取所需的信息。
以同样的方式,如果需要,我们可以仅过滤一个进程。例如,如果我们要查找 Firefox 进程的cpu用法:
const ps = require('current-processes');
ps.get((err, processes) => {
if (err) throw err
processes.map(process => {
if (process.name == 'firefox')
console.log(process)
});
});
或者,如果您不需要任何依赖关系,则可以直接使用ps
命令(在Linux上)执行。无论如何,这是 current-processes 库在内部执行的方式:
const exec = require('child_process').exec;
exec('ps -C firefox -o %cpu,%mem', (err, stdout) => {
if (err) throw err
console.log(stdout)
})