Node.js 节点群集工作线程

Node.js 节点群集工作线程,node.js,macos,unix,cluster-computing,worker,Node.js,Macos,Unix,Cluster Computing,Worker,有人知道是否有一种平台无关的方法来获取工作程序的内存使用率吗? 我希望它能像这样工作: console.log('App process memoryUsage: ',process.memoryUsage()); cluster.on('online',function(worker){ // doesn't work! console.log('Workers memory usage: ',worker.process.memoryUsage()); }); 但是work

有人知道是否有一种平台无关的方法来获取工作程序的内存使用率吗? 我希望它能像这样工作:

console.log('App process memoryUsage: ',process.memoryUsage());
cluster.on('online',function(worker){    // doesn't work! 
  console.log('Workers memory usage: ',worker.process.memoryUsage());  
});
但是workers进程没有方法
memoryUsage()

有没有一个合理的理由不能实现这一点


实现这一点的唯一方法是在linux上使用unix
top-pid 1234
(macosx)或
top-p 1234
。并通过
process.plattform
进行切换。确实,您无法从worker的进程属性中获取
memoryUsage
。我不知道为什么没有实施,但您可以通过这种方法实现同样的效果:

var cluster=require('cluster');
var numpus=require('os').cpus().length;
if(cluster.isMaster){
对于(变量i=0;i
8核系统上的输出:

user$ node ClusterTest.js 
Master consumes 6mb of memory
Worker with ID: 2 consumes 5mb of memory
Worker with ID: 6 consumes 5mb of memory
Worker with ID: 3 consumes 5mb of memory
Worker with ID: 4 consumes 5mb of memory
Worker with ID: 7 consumes 5mb of memory
Worker with ID: 5 consumes 5mb of memory
Worker with ID: 8 consumes 5mb of memory
Worker with ID: 1 consumes 39mb of memory
^C
user$

使用基于上下文的
memoryUsage
是个好主意。在有人发现内存使用问题的情况下,阅读以下内容很有趣: