题目
如何查看Linux系统中当前运行的进程及其资源占用情况?
信息
- 类型:问答
- 难度:⭐
考点
Linux命令,进程监控,资源占用
快速回答
在Linux系统中,可以使用以下命令查看进程及资源占用:
top:实时动态查看进程资源占用(CPU、内存等)ps:静态查看进程快照,常用组合ps auxhtop:增强版 top(需安装),支持交互操作
按 q 可退出这些工具。
解析
1. 核心命令详解
top 命令
功能:实时动态显示系统进程状态和资源占用(默认3秒刷新)
关键输出列:
PID:进程IDUSER:进程所有者%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