温馨提示×

如何监控进程资源

小樊
46
2026-08-31 10:04:53
栏目: 编程语言

监控进程资源(CPU、内存、磁盘、网络等)是系统运维和性能优化的核心工作。以下是不同操作系统(Linux/Windows/macOS)下的常用方法和工具,从命令行图形化,从实时监控历史分析覆盖全面场景。

一、Linux 系统(最常用,服务器场景)

Linux 下工具丰富,从基础命令到专业监控工具应有尽有。

1. 基础命令(快速查看)

(1)top:实时进程监控(经典工具)
  • 作用:动态显示系统中进程的 CPU、内存占用,默认按 CPU 使用率排序。
  • 常用操作:
    • P:按 CPU 使用率排序;按 M:按内存使用率排序;按 N:按 PID 排序。
    • k:输入 PID 杀死进程;按 q:退出。
    • 示例:top -p 1234(监控指定 PID 为 1234 的进程)。
  • 输出解读:
    • %CPU:进程占用 CPU 百分比;%MEM:进程占用物理内存百分比;RES:进程实际使用的物理内存(KB)。
(2)htoptop 的增强版(更友好)
  • 安装:yum install htop(CentOS)/apt install htop(Ubuntu)。
  • 优势:支持鼠标操作、彩色显示、横向滚动查看完整命令、直接 kill 进程。
  • 示例:htop -p 1234(监控指定进程)。
(3)ps:静态进程快照
  • 作用:查看某一时刻的进程状态,适合脚本或一次性查询。
  • 常用组合:
    • ps aux:查看所有进程的详细信息(用户、PID、CPU、内存、命令等)。
    • ps -eo pid,ppid,cmd,%cpu,%mem --sort=-%cpu | head:按 CPU 使用率降序排,取前 10 个进程。
    • ps -p 1234 -o pid,%cpu,%mem,cmd:查看指定 PID 的 CPU、内存和命令。
(4)pidstat:进程级资源统计(sysstat 工具包)
  • 安装:yum install sysstat / apt install sysstat
  • 作用:细粒度监控进程的 CPU、内存、磁盘 I/O、上下文切换等,支持间隔采样。
  • 常用示例:
    • pidstat 2 5:每 2 秒采样一次,共 5 次,显示所有进程的 CPU 使用。
    • pidstat -r -p 1234 2:每 2 秒监控 PID 1234 的内存使用(-r 表示内存)。
    • pidstat -d -p 1234 2:每 2 秒监控 PID 1234 的磁盘 I/O(-d 表示磁盘)。
    • pidstat -u -p 1234 2:每 2 秒监控 CPU 使用(-u 表示 CPU)。
(5)pmap:查看进程内存映射
  • 作用:显示进程占用的内存分布(如堆、栈、共享库等)。
  • 示例:pmap -x 1234-x 显示详细信息,包括内存大小、RSS、权限等)。
(6)lsof:查看进程打开的文件/端口
  • 作用:监控进程打开的文件、网络连接、套接字等(排查文件占用、端口冲突)。
  • 示例:
    • lsof -p 1234:查看 PID 1234 打开的所有文件。
    • lsof -i :8080:查看占用 8080 端口的进程。

2. 专业工具(深度监控)

(1)nmon:全面性能监控(CPU/内存/磁盘/网络)
  • 安装:yum install nmon / apt install nmon
  • 优势:交互式界面,可同时监控多个资源,支持数据导出(用于后续分析)。
  • 操作:运行 nmon 后,按 c(CPU)、m(内存)、d(磁盘)、n(网络)切换显示。
(2)glances:跨平台监控工具(Web 界面支持)
  • 安装:pip install glances(需 Python 环境)。
  • 优势:支持实时监控,可远程通过 Web 界面访问(默认端口 61208)。
  • 示例:glances -w 启动 Web 服务,浏览器访问 http://IP:61208
(3)perf:性能分析工具(高级)
  • 作用:Linux 内核自带,用于分析进程 CPU 瓶颈(如函数级热点)。
  • 示例:perf top -p 1234 查看 PID 1234 的 CPU 热点函数。

二、Windows 系统

Windows 下主要通过任务管理器命令行工具专业软件监控。

1. 任务管理器(图形化,最便捷)

  • 打开:按 Ctrl + Shift + EscCtrl + Alt + Del → 选择“任务管理器”。
  • 功能:
    • “进程”标签:查看进程的 CPU、内存、磁盘、网络占用,支持排序和结束进程。
    • “详细信息”标签:类似 Linux 的 ps,显示 PID、线程数、内存私有工作集等。
    • “性能”标签:查看整体 CPU、内存、磁盘、网络的实时趋势。

2. 命令行工具

(1)tasklist:查看进程列表
  • 类似 Linux 的 ps,静态列出所有进程。
  • 示例:
    • tasklist | findstr "chrome":查找包含“chrome”的进程。
    • tasklist /fi "PID eq 1234":查看指定 PID 的进程信息。
(2)wmic:查询进程资源
  • 作用:通过 WMIT 查询进程详细属性(CPU、内存、路径等)。
  • 示例:
    • wmic process where "ProcessId=1234" get Name,WorkingSetSize,UserModeTime:查看 PID 1234 的内存(WorkingSetSize,单位字节)和 CPU 时间。
(3)typeperf:实时监控性能计数器
  • 作用:类似 Linux 的 pidstat,通过 Windows 性能计数器监控进程。
  • 示例:
    • typeperf "\Process(chrome)\% Processor Time" "\Process(chrome)\Working Set":实时监控 chrome 进程的 CPU 和内存(进程名需替换,注意空格用引号包裹)。

3. 专业工具

(1)Process Explorer(微软官方,进阶)
  • 下载:微软官网
  • 优势:比任务管理器更强大,可查看进程的线程、DLL、句柄、内存映射、CPU 占用详情等。
  • 功能:支持“搜索句柄或 DLL”、查看进程启动参数、关联父进程等。
(2)Performance Monitor(性能监视器)
  • 打开:运行 perfmon.msc
  • 作用:自定义添加性能计数器(如进程 CPU、内存、磁盘 I/O),生成实时/历史报表。
  • 操作:添加“计数器”→ 选择“Process”类别 → 选择目标进程和指标(如 % Processor TimeWorking Set)。

三、macOS 系统

macOS 基于 Unix,工具与 Linux 类似,但有自有图形化工具。

1. 活动监视器(图形化,系统自带)

  • 打开:Launchpad → 其他 → 活动监视器(或 Spotlight 搜索“活动监视器”)。
  • 功能:
    • “CPU”标签:查看进程 CPU 占用,支持排序。
    • “内存”标签:查看进程内存占用(如物理内存、交换内存)。
    • “磁盘”“网络”标签:查看进程的磁盘读写和网络流量。

2. 命令行工具(类 Linux)

  • top:与 Linux 类似,但输出格式略有不同(支持按 o 排序,如 cpu 按 CPU 排序)。
  • ps:用法与 Linux 一致,如 ps aux | grep chrome
  • htop:可通过 Homebrew 安装(brew install htop),用法同 Linux。
  • nettop:macOS 特有,监控进程网络流量(按进程分组显示 TCP/UDP 连接)。

四、跨平台工具(通用场景)

  • Prometheus + Grafana:企业级监控方案,通过 node_exporter(Linux)或 windows_exporter(Windows)采集进程指标,Grafana 可视化,支持历史数据存储和告警。
  • Zabbix:老牌监控系统,支持进程资源监控(CPU、内存、端口等),适合大规模服务器集群。
  • Netdata:轻量级实时监控工具,支持 Linux/Windows/macOS,安装后自动采集进程指标,提供 Web 界面(默认端口 19999)。

五、监控场景总结

场景 推荐工具(Linux) 推荐工具(Windows)
快速查看实时进程 top/htop 任务管理器
静态进程快照 ps tasklist
细粒度采样(CPU/内存/IO) pidstat typeperf/Performance Monitor
深度分析(内存映射/句柄) pmap/lsof Process Explorer
长期历史监控 Prometheus + Grafana Prometheus + windows_exporter

关键指标说明

  • CPU%CPU(使用率)、User Time(用户态 CPU)、System Time(内核态 CPU)。
  • 内存RES/RSS(物理内存)、VIRT(虚拟内存)、%MEM(内存占比)、Working Set(Windows 物理内存)。
  • 磁盘 I/OkB_rd/s(读速率)、kB_wr/s(写速率)、iowait(磁盘等待时间)。
  • 网络RX(接收流量)、TX(发送流量)、Connections(连接数)。

根据需求选择工具,日常快速排查用 top/htop/任务管理器,深度分析用 pidstat/Process Explorer,长期监控用 Prometheus/Grafana 即可。

0