top程序监控
1625字约5分钟
2025-05-28
top
类似Windows任务管理器
top
实时更新系统中的程序运行状态
-d 秒数
:指定top
多少秒更新一次,默认是 3 秒
-i
:让 top
不显示任何闲置或者僵死的进程
-p
:通过 pid
来监控某个进程的状态
top -p 1017 # 查看 sshd 进程
查看对应用户的进程
输入 top,按 u
键,输入对应的用户名,即可列出对应用户的进程
top - 20:42:56 up 21:51, 2 users, load average: 0.01, 0.02, 0.05
Tasks: 118 total, 1 running, 117 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1862816 total, 1243224 free, 198552 used, 421040 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 1497608 avail Mem
# 输入查询的用户名
Which user (blank for all) root
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 125632 8164 2624 S 0.0 0.4 0:08.94 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.05 kthreadd
4 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
6 root 20 0 0 0 0 S 0.0 0.0 0:00.59 ksoftirqd/0
7 root rt 0 0 0 0 S 0.0 0.0 0:00.08 migration/0
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
9 root 20 0 0 0 0 S 0.0 0.0 0:04.93 rcu_sched
10 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 lru-add-drain
11 root rt 0 0 0 0 S 0.0 0.0 0:00.71 watchdog/0
12 root rt 0 0 0 0 S 0.0 0.0 0:00.68 watchdog/1
13 root rt 0 0 0 0 S 0.0 0.0 0:00.08 migration/1
14 root 20 0 0 0 0 S 0.0 0.0 0:00.45 ksoftirqd/1
杀死对应进程
输入 top,按 k
键,输入进程号,即可杀死对应的进程
[root@hadoop01 ~]# top
top - 20:44:27 up 21:52, 2 users, load average: 0.00, 0.01, 0.05
Tasks: 117 total, 2 running, 115 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.1 sy, 0.0 ni, 99.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1862816 total, 1242960 free, 198796 used, 421060 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 1497356 avail Mem
# 输入要杀死的进程pid
PID to signal/kill [default pid = 686] 101
# 信号量,9就是强制关闭
Send pid 1027 signal [15/sigterm] 9
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
686 root 20 0 199436 4868 3744 S 0.1 0.3 2:11.27 vmtoolsd
4778 root 20 0 0 0 0 R 0.1 0.0 0:41.67 kworker/0:2
1 root 20 0 125632 8164 2624 S 0.0 0.4 0:08.95 systemd
11 root rt 0 0 0 0 S 0.0 0.0 0:00.72 watchdog/0
683 root 20 0 21684 1324 1012 S 0.0 0.1 0:05.68 irqbalance
711 root 20 0 548632 8900 6896 S 0.0 0.5 0:06.94 NetworkManager
787 root 0 -20 0 0 0 S 0.0 0.0 0:00.52 kworker/0:1H
1018 root 20 0 586424 20156 6748 S 0.0 1.1 0:14.88 tuned
1020 root 20 0 230932 5152 2804 S 0.0 0.3 0:08.27 rsyslogd
7644 root 20 0 0 0 0 S 0.0 0.0 0:00.13 kworker/u256:0
8051 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kworker/0:1
对应交互
在top界面
操作 | 功能 |
---|---|
P | 已cpu使用率来排序,默认 |
M | 已内存的使用率来排序 |
N | 已pid进程号来排序 |
T | 按累计运行时间排序 |
q | 退出top |
小写 m
切换内存显示样式
top界面解释
top - 21:50:44 up 22:58, 2 users, load average: 0.00, 0.01, 0.05
Tasks: 118 total, 1 running, 117 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.2 us, 0.0 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1862816 total, 1243188 free, 198392 used, 421236 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 1497728 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
第一行
top - 21:50:44 up 22:58, 2 users, load average: 0.00, 0.01, 0.05
21:50:44
:当前系统时间。up 22:58
:系统已运行时间(22 小时 58 分钟)。2 users
:当前登录的用户数。load average
:系统负载平均值(过去 1 分钟、5 分钟、15 分钟)。含义:数值表示等待 CPU 资源的进程数,理想情况下应低于 CPU 核心数。此处均接近 0,说明系统负载极低,资源充足。
第二行
Tasks: 118 total, 1 running, 117 sleeping, 0 stopped, 0 zombie
118 total
:系统中总进程数。1 running
:正在运行的进程数(仅 1 个进程占用 CPU)。117 sleeping
:睡眠状态的进程数(等待资源或事件,不占用 CPU)。0 stopped
:暂停的进程数(通常由调试工具如kill -STOP
触发)。0 zombie
:僵尸进程数(进程已结束但父进程未回收资源,需警惕非 0 值)。
第三行
%Cpu(s): 0.2 us, 0.0 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
us
(User):用户空间进程占用 CPU 百分比(0.2%)。sy
(System):内核空间进程占用 CPU 百分比(0%)。ni
(Nice):低优先级用户进程占用 CPU 百分比(0%)。id
(Idle):CPU 空闲百分比(99.8%,系统非常空闲)。wa
(Wait):等待 I/O 操作的 CPU 时间百分比(0%,无磁盘瓶颈)。hi
(Hardware IRQ):硬件中断占用 CPU 百分比(0%)。si
(Software IRQ):软件中断占用 CPU 百分比(0%)。st
(Steal):虚拟机被宿主机抢占的 CPU 时间百分比(0%,非虚拟机环境)。
第四行
KiB Mem : 1862816 total, 1243188 free, 198392 used, 421236 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 1497728 avail Mem
物理内存(Mem):
total
:总内存(约 1.78GB)。free
:未使用的空闲内存(约 1.19GB)。used
:已使用的内存(约 193.7MB,包含正在使用的进程内存)。buff/cache
:缓冲区(buffer)和缓存(cache)占用的内存(约 411.4MB)。作用:buffer 用于临时存储磁盘数据,cache 用于缓存文件内容,两者均可被系统自动回收以分配给活跃进程。
交换空间(Swap):
total
:总 Swap 空间(约 2GB)。free
:未使用的 Swap 空间(2GB,说明系统未启用虚拟内存,内存充足)。avail Mem
:可用内存(约 1.43GB,系统认为可直接分配给进程的内存,包含 free 和可回收的 buff/cache)
最后一行
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1234 root 20 0 100000 5000 2000 S 0.5 0.3 0:05.01 bash
列名 | 含义解释 |
---|---|
PID | 进程 ID(唯一标识)。 |
USER | 进程所属用户。 |
PR | 进程优先级(值越小优先级越高)。 |
NI | 进程的 nice 值(负值表示更高优先级,范围:-20 ~ 19)。 |
VIRT | 进程占用的虚拟内存大小(包括已分配但未使用的内存)。 |
RES | 进程占用的物理内存大小(实际使用的内存,即 RSS)。 |
SHR | 共享内存大小(如与其他进程共享的库文件)。 |
S | 进程状态(R 运行、S 睡眠、Z 僵尸、T 暂停)。 |
%CPU | 进程占用 CPU 的百分比(若为多核心 CPU,可能超过 100%)。 |
%MEM | 进程占用物理内存的百分比(RES / 总内存 )。 |
TIME+ | 进程累计运行时间(格式:分钟:秒)。 |
COMMAND | 进程对应的命令名称(可通过ps -ef 查看完整路径)。 |