查看云服务器上正在运行的进程数量,有多种方法,以下是几种常用且高效的方式:
1. 使用 ps 命令 + wc 统计(最直接)
ps aux | wc -l
说明:
ps aux:列出所有用户的所有进程。wc -l:统计行数。- 注意:结果会包含标题行(第一行),所以实际进程数 = 显示的数字 – 1。
精确统计(排除标题行):
ps aux --no-heading | wc -l
2. 使用 top 命令动态查看
top
启动后,在首部信息中查找 Tasks 行,会显示:
total:总进程数。running:正在运行的进程数。sleeping:休眠进程数等。
3. 查看 /proc 虚拟文件系统
ls /proc | grep -E '^[0-9]+$' | wc -l
说明: /proc 目录下每个数字命名的文件夹代表一个进程,此命令统计这些文件夹的数量。
4. 使用 pstree 查看进程树并计数
pstree -p | wc -l
注意: 此方法统计的是输出行数,适用于快速估算,但可能因进程树格式导致偏差。
5. 使用 htop(需安装,更友好)
htop
安装命令(CentOS/RHEL):
sudo yum install htop
安装命令(Ubuntu/Debian):
sudo apt install htop
启动后,顶部会直接显示 Tasks 数量。
6. 使用 systemctl(仅统计系统服务)
systemctl list-units --type=service --state=running | wc -l
说明: 仅统计正在运行的 systemd 服务,不是全部进程。
快速脚本示例
如果想定期监控,可使用以下脚本:
#!/bin/bash
# 统计总进程数和运行中的进程数
total=$(ps aux --no-heading | wc -l)
running=$(ps aux --no-heading -o stat | grep -c '^R')
echo "总进程数: $total"
echo "运行中进程数: $running"
关键提示
- 权限:普通用户只能查看自己的进程,
root用户可查看所有进程。 - 容器环境:如果在 Docker 容器内,以上命令仅显示容器内的进程。
- 自动化监控:生产环境建议结合监控工具(如 Prometheus + Node Exporter)进行长期跟踪。
选择哪种方式取决于你的具体需求:快速检查推荐 ps aux | wc -l,动态监控用 top 或 htop。
CLOUD技术笔记