侧边栏壁纸
博主头像
colo

欲买桂花同载酒

  • 累计撰写 1823 篇文章
  • 累计收到 0 条评论

如何查看Linux系统中当前运行的进程及其资源占用情况?

2025-12-11 / 0 评论 / 4 阅读

题目

如何查看Linux系统中当前运行的进程及其资源占用情况?

信息

  • 类型:问答
  • 难度:⭐

考点

Linux命令,进程监控,资源占用

快速回答

在Linux系统中,可以使用以下命令查看进程及资源占用:

  • top:实时动态查看进程资源占用(CPU、内存等)
  • ps:静态查看进程快照,常用组合 ps aux
  • htop:增强版 top(需安装),支持交互操作

q 可退出这些工具。

解析

1. 核心命令详解

top 命令

功能:实时动态显示系统进程状态和资源占用(默认3秒刷新)

关键输出列

  • PID:进程ID
  • USER:进程所有者
  • %CPU:CPU占用率
  • %MEM:内存占用率
  • COMMAND:进程名称

交互操作

  • P:按CPU使用率排序
  • M:按内存使用率排序
  • k:终止指定PID的进程

ps 命令

常用组合ps aux

# 示例输出:
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1 169316 13104 ?        Ss   Aug01   0:15 /sbin/init
mysql     1024  1.2  5.3 2123456 430212 ?      Sl   Aug01  20:34 /usr/sbin/mysqld

关键参数

  • a:显示所有用户进程
  • u:显示详细资源信息
  • x:包括未关联终端的进程

htop 命令(推荐)

安装sudo apt install htop(Debian/Ubuntu)

优势

  • 彩色界面,更直观
  • 鼠标点击选择进程
  • 树状结构显示进程关系
  • 直接支持进程终止、调整优先级等操作

2. 最佳实践

  • 快速定位问题进程
    top -o %CPU # 启动时按CPU排序
  • 持续监控
    top -d 5 # 设置5秒刷新间隔
  • 输出到文件
    ps aux > process_report.txt

3. 常见错误

  • 混淆 top 和 ps
    top 是动态实时监控,ps 是静态快照
  • 遗漏系统进程
    未使用 ps aux 中的 x 参数导致漏掉守护进程
  • 误杀进程
    在 top/htop 中终止进程前务必确认PID和进程名

4. 扩展知识

  • 进程状态标识
    S(休眠)、R(运行)、Z(僵尸进程)
  • 资源监控工具链
    vmstat(系统整体资源)、iotop(磁盘IO)、nethogs(网络流量)
  • 自动化监控
    使用 cron 定时执行 ps 并记录日志

示例脚本(每10分钟记录高CPU进程):

#!/bin/bash
while true; do
  echo "===== $(date) =====" >> /var/log/high_cpu.log
  ps aux --sort=-%cpu | head -n 10 >> /var/log/high_cpu.log
  sleep 600  # 等待10分钟
done