我有一个NodeJS应用程序,可以在具有24个核心的服务器上生成进程。通常,我不会为每个核心生成多个进程(最多总共24个进程)。我想知道每个进程产生的核心的CPU使用情况。有可能调查这样的事情吗?我知道我可以使用os.cpus()
,但这会返回机器中所有CPU的更一般信息,而不是我正在查询的进程正在处理的那些CPU。
是否可以使用NodeJS中的内容执行此类操作?我不想依赖于从NodeJS执行(重)bash脚本来了解类似的东西。
答案 0 :(得分:4)
尝试node-usage使用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 }
});
答案 1 :(得分:2)
当然我可能错了,但我不确定是否存在工作流程CPU使用率的API,但您可以获得所有核心的每个核心:http://nodejs.org/api/os.html#os_os_cpus
另请注意:对于此类电源,您可能需要考虑检查是否可以访问系统的所有内存。 V8限制为需要重新编译的默认值,以便为内存访问提供“更深的口袋”。