Linux服务器使用ps和top命令查看进程
在 Linux 服务器上,ps
和 top
是两个常用的命令行工具,用于查看和管理系统的进程。它们提供了不同层次的进程信息,可以帮助管理员诊断系统负载、管理进程等。以下是这两个命令的基本用法:
1. ps
命令
ps
命令(process status)用于查看当前系统上运行的进程信息。ps
命令的输出可以根据不同的选项进行定制,通常用于静态查看进程。
常用选项
-
ps aux
显示所有进程的详细信息。a
:显示所有用户的进程(包括其他用户的进程)。u
:以用户友好的格式显示进程信息。x
:显示没有控制终端的进程(后台进程)。
示例:
ps aux
输出示例:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.1 23456 1856 ? Ss 10:01 0:02 /sbin/init root 123 1.0 2.5 123456 67890 ? S 10:15 2:12 /usr/bin/python3
-
ps -ef
显示系统中所有进程的列表,格式为传统的 UNIX 风格。e
:显示所有进程。f
:以树状图的形式显示进程的父子关系。
示例:
ps -ef
输出示例:
UID PID PPID C STIME TTY TIME CMD root 1 0 0 10:01 ? 00:00:02 /sbin/init root 123 1 1 10:15 ? 02:12:04 /usr/bin/python3
-
ps -aux | grep <进程名>
查找特定进程。通过grep
命令过滤进程列表,找到你关注的进程。示例:查找所有名为
nginx
的进程:ps aux | grep nginx
-
ps -p <PID>
查看指定进程 ID (PID) 的详细信息。示例:查看进程 PID 为
1234
的详细信息:ps -p 1234
-
ps --sort=-%cpu
按 CPU 使用率排序进程。--sort=-%cpu
表示按 CPU 使用率降序排列进程。示例:
ps aux --sort=-%cpu
输出字段解释
- USER:进程的拥有者。
- PID:进程 ID。
- %CPU:进程所使用的 CPU 百分比。
- %MEM:进程使用的物理内存百分比。
- VSZ:进程占用的虚拟内存量(KB)。
- RSS:进程占用的物理内存量(KB)。
- TTY:进程的终端类型。
- STAT:进程的状态(例如
R
运行,S
睡眠,Z
僵尸)。 - START:进程启动时间。
- TIME:进程的 CPU 时间。
- COMMAND:执行的命令或程序。
2. top
命令
top
命令用于实时查看系统的进程和资源使用情况,并且支持动态更新,可以帮助管理员了解系统的负载和进程状态。
启动 top
命令
top
启动 top
后,默认会以一个动态更新的方式显示系统中占用 CPU 和内存最多的进程。top
界面会定期刷新,默认每 3 秒刷新一次。
top
界面的常见信息
- PID:进程 ID。
- USER:进程的拥有者。
- PR:进程的优先级。
- NI:进程的 nice 值(调整进程优先级)。
- VIRT:进程的虚拟内存使用量。
- RES:进程的常驻内存(实际物理内存)使用量。
- SHR:进程共享内存的大小。
- S:进程的状态(如
R
运行、S
睡眠、Z
僵尸)。 - %CPU:进程当前的 CPU 使用率。
- %MEM:进程当前的内存使用率。
- TIME+:进程所使用的总 CPU 时间。
- COMMAND:执行的命令或程序。
常用快捷键
在 top
命令的界面中,你可以使用以下快捷键进行交互:
- q:退出
top
。 - P:按 CPU 使用率排序(默认排序方式)。
- M:按内存使用量排序。
- T:按时间/累计时间排序。
- 1:显示每个 CPU 的使用情况(多核 CPU 系统可以查看每个核心的使用情况)。
- c:显示完整的命令行。
- k:杀死一个进程,输入进程 PID 后可以选择终止该进程。
- r:改变进程的优先级(
nice
值)。
使用 top
命令查看特定进程
你也可以在 top
命令运行时输入 Shift + L
,然后输入进程名来筛选显示特定的进程。
top
命令常用的选项
top -u <用户名>
:显示指定用户的进程。top -p <PID1>,<PID2>,<PID3>
:只显示指定 PID 的进程。
比较 ps
和 top
特性 | ps 命令 | top 命令 |
---|---|---|
作用 | 静态查看系统当前的进程信息 | 动态查看进程和资源使用情况,实时更新 |
输出方式 | 一次性输出当前进程的快照 | 实时更新的动态信息,默认每 3 秒刷新一次 |
适用场景 | 查看某个时间点的进程状态 | 实时监控进程及系统资源消耗 |
过滤和排序 | 通过命令行选项(如 `ps aux | grep`)进行过滤和排序 |
总结
- 使用
ps
命令查看静态的、一次性的进程快照,它适合用来检查某个时间点的进程情况。 - 使用
top
命令查看实时的进程和系统资源使用情况,它适合用来监控系统的运行状态,尤其是当需要查看 CPU 和内存的消耗时。
两者各有用途,根据不同的需求选择合适的命令来管理和查看 Linux 系统中的进程。