首页主机资讯CentOS上Node.js如何进行性能监控

CentOS上Node.js如何进行性能监控

时间2025-10-15 23:37:03发布访客分类主机资讯浏览1281
导读:CentOS上Node.js性能监控的常用方法 1. 使用PM2进行进程管理与监控 PM2是Node.js生态中最流行的进程管理工具之一,提供实时监控、自动重启、日志管理等功能,适合生产环境使用。 安装与启动:通过npm全局安装PM2,启...

CentOS上Node.js性能监控的常用方法

1. 使用PM2进行进程管理与监控

PM2是Node.js生态中最流行的进程管理工具之一,提供实时监控、自动重启、日志管理等功能,适合生产环境使用。

  • 安装与启动:通过npm全局安装PM2,启动应用时添加--name参数指定应用名称(便于后续管理):
    sudo npm install -g pm2
    pm2 start app.js --name "my-node-app"
    
  • 核心监控命令
    • pm2 status:查看应用列表及状态(CPU、内存占用、运行时间、重启次数等);
    • pm2 monit:进入实时交互界面,动态显示CPU、内存、事件循环延迟等指标;
    • pm2 logs:实时查看应用日志(支持-f参数跟踪最新日志);
    • pm2 save:保存当前进程列表,pm2 startup:设置开机自启。

2. 利用Node.js内置模块获取基础指标

Node.js内置模块可直接获取进程级性能数据,适合简单监控或自定义需求:

  • process模块:获取内存使用(process.memoryUsage())和CPU占用(process.cpuUsage()):
    setInterval(() =>
     {
        
      console.log('内存使用:', process.memoryUsage());
     // {
     rss, heapTotal, heapUsed, external }
        
      console.log('CPU占用:', process.cpuUsage());
         // {
     user, system }
    (单位:微秒)
    }
        , 1000);
        
    
  • os模块:获取系统级资源信息(总内存、空闲内存、CPU核心数、系统运行时间):
    const os = require('os');
        
    console.log('总内存:', os.totalmem());
         // 字节
    console.log('空闲内存:', os.freemem());
        
    console.log('CPU核心数:', os.cpus().length);
        
    console.log('系统运行时间:', os.uptime());
         // 秒
    
  • 自定义HTTP接口:通过Express框架暴露/status接口,实时返回服务器状态(便于外部工具调用)。

3. 第三方APM工具(应用性能管理)

APM工具提供端到端性能追踪,包括事件循环延迟、数据库查询耗时、错误堆栈分析等,适合复杂应用:

  • New Relic:商业工具,提供详细的性能报告和警报功能。
    • 配置步骤:注册账号→安装newrelic包→创建newrelic.js配置文件(填入许可证密钥)→在应用入口引入:
      require('newrelic');
          
      const express = require('express');
          
      const app = express();
          
      // 应用代码...
      
  • Datadog:支持多平台监控,集成Node.js客户端dd-trace,可监控应用性能与基础设施指标。

4. 系统级监控工具

通过CentOS自带命令行工具监控系统资源,间接反映Node.js应用的资源消耗:

  • top/htop:实时查看进程CPU、内存占用(htop需安装,更直观);
  • vmstat:监控系统整体性能(进程、内存、IO、CPU):
    vmstat 1  # 每秒刷新一次
    
  • iostat:监控磁盘IO性能(需安装sysstat包):
    iostat -x 1  # 查看磁盘详细IO指标
    
  • free:查看内存使用情况(-m参数以MB为单位):
    free -m
    

5. 日志管理与分析

日志是排查性能问题的关键,通过结构化日志分析工具实现高效管理:

  • 日志记录:使用winstonmorgan库记录应用日志(如请求时间、错误信息):
    const winston = require('winston');
    
    const logger = winston.createLogger({
    
      level: 'info',
      transports: [
        new winston.transports.Console(),
        new winston.transports.File({
     filename: 'app.log' }
    )
      ]
    }
        );
        
    logger.info('应用启动成功');
        
    
  • 日志分析:使用ELK Stack(Elasticsearch+Logstash+Kibana)收集、存储、可视化日志,快速定位性能瓶颈(如高频错误、慢请求)。

6. Prometheus+Grafana可视化监控

适合大规模分布式系统,通过时间序列数据库存储指标,可视化面板展示趋势:

  • 安装Prometheus:下载并配置Prometheus,添加Node.js应用的/metrics端点(需使用node_exporterprom-client库暴露指标);
  • 安装Grafana:配置Prometheus为数据源,导入Node.js监控面板(如“Node Exporter Full”),展示CPU、内存、请求率等指标。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: CentOS上Node.js如何进行性能监控
本文地址: https://pptw.com/jishu/727539.html
CentOS上Node.js如何进行单元测试 CentOS上SQL Server的权限设置

游客 回复需填写必要信息