温馨提示×

Nodejs 在 Ubuntu 上如何进行性能监控

小樊
51
2025-06-12 23:37:45
栏目: 编程语言

在 Ubuntu 上监控 Node.js 性能有多种方法和工具可以使用。以下是一些常用的工具和步骤:

系统级性能监控工具

  • top 和 htop:实时显示系统中各个进程的资源占用情况,包括 CPU 和内存。
  • vmstat:显示系统的虚拟内存统计信息,如内存使用率和交换区使用情况。
  • iostat:监控系统的磁盘 I/O 操作,包括读写速度和等待时间。
  • sar:收集、报告和保存系统活动信息,如 CPU 使用率、内存使用情况和网络流量。
  • dstat:一个多功能的系统资源监控工具,可以实时显示 CPU、内存、磁盘 I/O 和网络流量等信息。
  • glances:一个跨平台的系统监控工具,可以快速查看系统的状态和性能。
  • Conky:一个轻量级的系统监视工具,可以监控服务器的运行状态、网络流量和服务可用性等。

Node.js 应用级性能监控工具

  • 内置模块
    • console.time() 和 console.timeEnd():用于测量代码块的执行时间。
    • process.memoryUsage():获取进程的内存使用情况。
    • process.cpuUsage():获取 CPU 使用率。
  • 第三方库
    • xprofiler:提供详细的性能分析功能,如高精度计时器。
    • node-inspector:基于 Blink 开发工具的 Node.js 调试器,提供类似 Chrome DevTools 的功能。
    • electron-profiler:Electron 的官方性能分析工具,收集应用程序运行时的各种信息。
    • Express 中间件
      • express-status-monitor:提供实时的服务器性能指标和健康检查。
    • Prometheus 和 Grafana:用于更详细的性能监控和可视化。

示例代码

以下是一个使用内置模块和第三方库进行性能监控的简单示例:

const os = require('os'); const { performance } = require('perf_hooks'); // 使用 console.time 和 console.timeEnd 测量代码块执行时间 console.time('myFunction'); myFunction(); console.timeEnd('myFunction'); // 使用 process.memoryUsage 获取内存使用情况 const memoryUsage = process.memoryUsage(); console.log('Memory usage:', JSON.stringify(memoryUsage)); // 使用 perf_hooks 模块进行性能分析 const startTime = performance.now(); myFunction(); const endTime = performance.now(); console.log('Execution time:', endTime - startTime, 'milliseconds'); 

通过以上方法和工具,可以有效地监控 Node.js 应用的性能和健康状况。

0