简介
ps(process status)命令是Linux系统中最基本也是最常用的进程查看命令,用于报告当前系统的进程状态。通过ps命令可以查看进程的详细信息,包括进程ID、CPU占用率、内存使用量等。
主要功能:
- 查看系统中所有进程
- 监控进程状态
- 分析进程资源使用
- 识别进程关系
- 排查系统问题
基本用法
常用选项
选项 | 说明 | 示例 |
---|---|---|
-e | 显示所有进程 | ps -e |
-f | 显示完整格式 | ps -f |
-u | 按用户筛选 | ps -u root |
aux | 显示所有用户的所有进程 | ps aux |
-C | 按命令名筛选 | ps -C nginx |
输出字段说明
字段 | 含义 |
---|---|
PID | 进程ID |
%CPU | CPU使用率 |
%MEM | 内存使用率 |
VSZ | 虚拟内存大小 |
RSS | 实际内存使用 |
TTY | 终端名称 |
STAT | 进程状态 |
START | 启动时间 |
TIME | 累计CPU时间 |
COMMAND | 命令名称 |
进程监控
常见进程状态
状态 | 说明 |
---|---|
R (Running) | 正在运行或在运行队列中等待 |
S (Sleep) | 中断休眠中,等待某个事件、信号 |
D (Disk Sleep) | 不可中断的休眠状态 |
Z (Zombie) | 僵尸进程 |
T (Traced) | 被跟踪或被停止 |
进程监控示例
查看所有Java进程:
ps -ef | grep java
按CPU使用率排序:
ps aux --sort=-%cpu
按内存使用率排序:
ps aux --sort=-%mem
性能分析
资源使用分析
查看进程树:
ps -ejH
显示线程信息:
ps -eLf
查看进程的详细信息:
ps -p PID -o pid,ppid,cmd,%cpu,%mem,rss
性能分析要点:
- 关注CPU和内存使用率
- 检查进程状态
- 分析进程关系
- 监控资源趋势
实用案例
系统监控脚本
#!/bin/bash
# 监控高CPU使用率的进程
ps aux | awk '$3 > 50.0 {print $0}'
# 监控高内存使用率的进程
ps aux | awk '$4 > 20.0 {print $0}'
# 查找僵尸进程
ps aux | awk '$8 ~ /Z/ {print $0}'
常见问题排查
查找内存泄漏:
ps -eo pid,ppid,%mem,cmd --sort=-%mem | head
检查进程数量:
ps -ef | wc -l
最佳实践
使用建议
- 定期检查系统进程状态
- 建立资源使用基线
- 及时清理僵尸进程
- 关注异常进程行为
注意事项:
- 频繁执行ps可能影响系统性能
- 注意区分CPU时间和实际时间
- 合理使用过滤和排序
- 关注进程的父子关系