node.js http服务器如何获取连接数

时间:2014-07-29 09:35:34

标签: javascript node.js

我使用node作为http服务器,代码如下:

http.createServer(function(req, res) {}).listen(8181);

我正在寻找一种在同一进程中监视节点js http服务器的简单方法。对我来说,拥有一个只能输出当前资源使用和连接数为json的函数就足够了。目前我不需要深度测量或实时性能监控。

节点http服务器的关键性能指标是什么?是否可以从节点获取它们?如果有,怎么样? 你如何看待愚蠢的kpi:

  1. 连接数
  2. CPU使用率
  3. Ram Usage
  4. 只需知道获取数据需要哪些变量/函数?

    谢谢我真的很感谢你的帮助

3 个答案:

答案 0 :(得分:12)

您可以使用NodeJS的内置功能获取连接量。检查getConnections。贝娄如何使用它的例子:

var server = http.createServer(app);    

server.getConnections(function(error, count) {

    console.log(count);

});

我希望这就是你要找的东西:)

答案 1 :(得分:1)

你需要这样的东西:

var count = 0;

http.createServer(function(req, res) {
    count++;
    res.on('finish', function () {
        //setTimeout(function () {
        count--;
        //}, 60000);
    }).on('close', function () {
        count--;
    });
}).listen(8181);

使用setTimeout(),您可以在最后1分钟内获得有效连接。

请参阅http://nodejs.org/api/os.html#os_os_cpus了解CPU使用情况

请参阅http://nodejs.org/api/process.html#process_process_memoryusage了解内存使用情况

答案 2 :(得分:0)

scribbles是我创建的日志记录模块。

您可以直接进入项目并获得 CPU Mem Net ,以及其他一些方便的标记和指标

检出performance-monitoring部分。

要使用:

const scribbles = require('scribbles');

scribbles.config({
   dataOut:console.log
})

setInterval(function(){
  scribbles.status();
}, 5000);

// This will give you a performance snapshot every 5 seconds.

您会得到:

  • 网络:网络信息

    • 端口:在此端口上监听
    • 连接数:当前已建立的连接数
  • 状态:服务状态。例如“向上”,“阻止”

  • cpu: CPU信息
    • 核心数:可用核心数
    • 型号:处理器说明
    • 速度: MHz频率速度
    • percUsed:进程负载百分比
    • percFree:在进程中以百分比形式提供
  • sys:系统信息
    • startedAt:系统启动时
    • arch:平台架构。例如“ x64”
    • 平台:操作系统平台
    • totalMem:正在使用的内存总兆字节
    • freeMem:可用内存的总兆字节
    • usedMem:正在使用的内存总兆字节
  • 过程:
    • percUsedCpu:该进程正在使用的处理能力的百分比
    • percFreeMem:此进程正在使用的内存百分比
    • usedMem:该进程正在使用的内存总兆字节
    • startedAt:进程启动时
    • pTitle:当前进程标题(即返回ps的当前值)
    • pid:进程的ID
    • ppid:当前父进程的ID
    • 用户: node启动节点的用户的名称
    • vNode:节点版本