Node JS 分析和跟踪子进程 (child_process / Fork)

use*_*897 5 performance profiling child-process node.js

我想微调子节点和父节点 JS 进程的性能。我想获取指标并转储,为此我也尝试了 Perf、Doctor、0x 和 Zipkin。这些工具都无法帮助我找到子进程指标,例如内存、事件循环、句柄(打开)、CPU。

如何分析 Node JS 分叉子进程。我们有什么特殊的方法吗?

父进程

 // var appzip = require('appmetrics-zipkin')({
    //   host: 'localhost',
    //   port: 9411,
    //   serviceName:'parent',
    //   sampleRate: 1.0
    // });

 

        var ChildProcess = require('child_process'),
        child = ChildProcess.fork('./child.js');
    
    child.on('message', function(payload){
        console.log(payload.memUsage);
    });
    
    child.send('get_mem_usage');
Run Code Online (Sandbox Code Playgroud)

子进程

// var appzip = require('appmetrics-zipkin')({
//   host: 'localhost',
//   port: 9411,
//   serviceName:'child',
//   sampleRate: 1.0
// });

function sleep (ms) {
  const future = Date.now() + ms
  while (Date.now() < future);
}

process.on('message', function(msg){
    sleep(10)
    if(msg === 'get_mem_usage'){
         process.send({memUsage: process.memoryUsage()});
    }
});
Run Code Online (Sandbox Code Playgroud)