CentOS上Node.js如何进行性能监控
导读: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. 日志管理与分析
日志是排查性能问题的关键,通过结构化日志和分析工具实现高效管理:
- 日志记录:使用
winston
或morgan
库记录应用日志(如请求时间、错误信息):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_exporter
或prom-client
库暴露指标); - 安装Grafana:配置Prometheus为数据源,导入Node.js监控面板(如“Node Exporter Full”),展示CPU、内存、请求率等指标。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS上Node.js如何进行性能监控
本文地址: https://pptw.com/jishu/727539.html