7

我有一个 NodeJS 应用程序,它在具有 24 个内核的服务器上生成进程。作为一项规则,我不会为每个核心生成一个以上的进程(最多总共 24 个进程)。我想知道每个进程产生的核心的 CPU 使用率。有可能调查这样的事情吗?我知道我可以使用os.cpus(),但这会返回有关机器中所有 CPU 的更一般信息,而不是我正在查询的进程正在处理的那个。

有没有可能用我们在 NodeJS 中的东西做这样的事情?我不想依靠从 NodeJS 执行(繁重的)bash 脚本来了解类似的东西。

4

2 回答 2

5

尝试使用节点使用 PID 来跟踪 CPU

您可以使用节点用法,如下所示

var spawn = require('child_process').spawn;
var usage = require('usage');

var ffmpeg = spawn('ffmpeg');
usage.lookup(ffmpeg.pid, function(err, usageInfo) {

    console.log(usageInfo); // { cpu: 2.4, memory: 100065280 }
});
于 2013-03-03T17:51:44.543 回答
3

当然我可能是错的,但我不确定是否有用于工作进程 CPU 使用的 API,但您可以获取所有内核的每个内核:http ://nodejs.org/api/os.html#os_os_cpus

另一方面:对于这种能力,您可能需要考虑检查您是否可以访问系统的所有内存。V8 限制为需要重新编译的默认设置,以便为内存访问提供“更深的口袋”。

于 2013-01-23T17:48:03.547 回答