Node.js获得十大应用程序的CPU使用率

时间:2018-12-17 08:47:24

标签: node.js

我正在尝试通过NodeJS的CPU使用率从服务器中获取前5或10个应用。我可以通过('os')lib获取所有内存,磁盘属性,但是有一种方法可以获取特定应用程序的内存和CPU使用率。不适用于所有系统。

致谢

1 个答案:

答案 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)
})