概述
本文主要讲述两点内容:
- top 命令界面的参数解释
- top 命令界面的常用交互操作
top 命令界面参数解释
下面是一张 top 命令执行后的界面:
我们可以看到,这里主要有两块内容:
- 汇总的统计信息区域:包含系统任务统计、进程统计、CPU 统计、内存统计、Swap 交换分区统计
- 详细的进程信息区域:包含每个进程详细的数据信息
统计信息区域
统计信息区域:包含系统任务统计、进程统计、CPU 统计、内存统计、Swap 交换分区统计
-
系统任务统计信息
系统平均负载:在特定时间间隔内运行队列中的平均进程树。简单理解为,一段时间内,等待 CPU 处理的进程个数。
1分钟的系统平均负载:瞬时的负载指标
5分钟、15分钟的平均负载:持续的负载指标
一般认为,单核满载的值为 1;那么,
- 当系统负载 > CPU核心 * 0.7 时,这是需要进行一定的优化处理了
- 当系统负载 > CPU核心 * 1.5 时,基本上是不得不进行优化处理了
-
进程统计信息
-
CPU 统计信息
- IRQ: 全称 Interrupt Request,即“中断请求”的意思。
- st:全称 Steal Time,该项指标只对虚拟机有效,表示分配给当前虚拟机的 CPU 时间之中,被同一台物理机上的其他虚拟机偷走的时间百分比
-
内存统计信息
-
Swap 交换分区统计信息
进程信息区域
进程信息区域:包含每个进程详细的数据信息
top 命令的界面中,进程信息区域默认仅展示一些重要的信息,可以在界面内使用
f 键
,查看全部列名,并控制它们是否显示,下面是这些列名的详细解释:
序号 | 列名 | 含义 |
---|---|---|
a | PID | 进程id |
b | PPID | 父进程id |
c | RUSER | Real user name |
d | UID | 进程所有者的用户id |
e | USER | 进程所有者的用户名 |
f | GROUP | 进程所有者的组名 |
g | TTY | 启动进程的终端名。不是从终端启动的进程则显示为 ? |
h | PR | 优先级 |
i | NI | nice值。越小优先级越高,最小-20,最大20(用户设置最大19) |
j | P | 最后使用的CPU,仅在多CPU环境下有意义 |
k | %CPU | 上次更新到现在的CPU时间占用百分比 |
l | TIME | 进程使用的CPU时间总计,单位秒 |
m | TIME+ | 进程使用的CPU时间总计,单位1/100秒 |
n | %MEM | 进程使用的物理内存百分比 |
o | VIRT | 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES |
p | SWAP | 进程使用的虚拟内存中,被换出的大小,单位kb |
q | RES | 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA |
r | CODE | 可执行代码占用的物理内存大小,单位kb |
s | DATA | 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb |
t | SHR | 共享内存大小,单位kb |
u | nFLT | 页面错误次数 |
v | nDRT | 最后一次写入到现在,被修改过的页面数 |
w | S | 进程状态 D:不可中断的睡眠状态 R:运行 S:睡眠 T:跟踪/停止 Z:僵尸进程 |
x | COMMAND | 命令名/命令行 |
y | WCHAN | 若该进程在睡眠,则显示睡眠中的系统函数名 |
z | Flags | 任务标志,参考 sched.h |
top 命令界面常用交互操作
空格/Enter:刷新界面
h/?:显示帮助菜单
f/F:选择显示的列
o/O:改变列的显示顺序
l:切换显示系统任务统计信息的样式
t:切换显示 CPU 统计信息的样式
m:切换显示内存和Swap交换分区统计信息的样式
P:根据 %CPU 排序
M:根据 %MEM 排序
T:根据 TIME+ 排序
1:显示所有 CPU 统计信息
s:更改自动刷新时间
k:终止指定的进程
q:退出界面
增强版 top:htop
参考:
https://my.oschina.net/leejun2005/blog/157910
//www.greatytc.com/p/078ed7895b0f