首页 > 编程笔记

Linux top命令:查看系统运行状态

top 命令是分析 Linux 操作系统性能的工具,可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具。

top 命令的语法格式为:
top [选项] [PID|time|...]
top命令的常用选项见下表。

表 1 top命令的常用选项
常用选项 说 明
-d 屏幕刷新间隔时间
-p<进程号> 指定进程 ID 来监控这个进程的状态
-c 显示完整的命令
-b 以批处理模式操作
-u <用户名> 指定用户名

在该命令中常用的快捷键是:
举个简单的例子:
[root@noylinux ~]# top
top - 23:40:18 up 5:32, 3 users, load average: 0.58, 0.58, 0.25
Tasks: 268 total,   1 running, 267 sleeping,    0 stopped, 0 zombie
%Cpu(s):    0.0 us, 1.5 sy, 0.0 ni, 98.5 id, 0.0 wa, 0.0 hi,0.0 si, 0.0 st
MiB Mem :   7742.0 totals,  5720.1 free,   1074.8 used, 947.1 buff/cache
MiB Swap:   5120.0 totals,  5120.0 free,    0.0 used. 6359.9 avail Mem

PID USER    PR  NI  VIRT    RES     SHR S   %CPU    %MEM    TIME+ COMMAND
1   root    20  0   252640  15056   9736 S  0.0     0.2     0:03.82 systemd
2   root    20  0   0       0       0 S     0.0     0.0     0:00.03 kthreadd
3   root    0-20    0       0       0 I     0.0     0.0     0:00.00 rcu_gp
4   root    0-20    0       0       0 I     0.0     0.0     0:00.00 rcu_par_gp
......

1) 第一行是系统运行时间和平均负载。

当前系统时间是 23:40:18,系统运行时间是 5分32秒,当前登录 3 个用户,系统负载是 0.58,0.58,0.25,这3个数分别是 1 分钟、5 分钟、15 分钟的负载情况(当结果大于 5 的时候表示系统在超负荷运转)。

2) 第二行是进程的相关信息。

总进程数 150 个,运行 1 个,休眠 267 个,停止 0 个,僵尸进程 0 个。

3) 第三行 CPU 状态相关信息,各个状态参数见下表。

表 2 CPU状态参数
状态 说 明
us 用户空间占用 CPU 的百分比(time running un-niced user processes)
sy 内核空间占用 CPU 的百分比(time running kernel processes)
ni 改变过优先级的进程占用 CPU 的百分比(time running niced user processes)
id 空闲 CPU 百分比(time spent in the kernel idle handler)
wa I/O 等待的 CPU 时间百分比(time waiting for I/O completion)
hi 硬中断占用 CPU 的百分比(time spent servicing hardware interrupts)
si 软中断占用 CPU 的百分比(time spent servicing software interrupts)
st 虚拟机监控程序从这个虚拟机窃取的时间(time stolen from this vm by the hypervisor)

4) 第四行是内存相关信息。内存信息参数见下表。

表 3 内存信息参数
状态 说  明
total 物理内存总量
free 空闲内存容量
used 使用中的内存容量
buff/cache 缓存的内存容量

5) 第五行是交换空间相关信息,参数见下表。

表 4 交换空间信息参数
状态 说  明
total 交换分区总量
free 空闲交换分区容量
used 使用中的交换分区容量
avail Mem 可用的交换分区容量
6) 第六行是空格。

7) 第七行是各个进程的状态及相关信息,参数见下表。

表 5 进程状态信息参数
列名 说 明
PID 进程 ID 号,进程的唯一标识符
USER 进程所有者的用户名
PR 进程优先级
NI nice 值。负值为高优先级,正值为低优先级,值越小优先级越高
VIRT 进程使用的虚拟内存总量,单位为 KB。计算公式:VIRT=SWAP+RES
RES 进程所驻留的内存大小,单位为 KB。计算公式:RES=CODE+DATA
SHR 进程的共享内存大小,单位为 KB
S 进程的状态。D 表示不可中断的睡眠状态,R 表示运行,S 表示睡眠,T 表示被跟踪/已停止,Z 表示僵尸进程
%CPU 从上次更新到现在 CPU 时间占用的百分比
%MEM 进程使用的物理内存百分比
TIME+ 进程使用的 CPU 时间总计
COMMAND 进程名称(命令名或完整命令行)

推荐阅读