【2023年10月07日】top详解
TOP详解
信息显示
Linux系统可以通过top命令查看系统的CPU、内存、运行时间、交换分区、执行的线程等信息。通过top命令可以有效的发现系统的缺陷出在哪里。是内存不够、CPU处理能力不够、IO读写过高….
top命令的第一行:
依次对应: 系统当前时间 , up 系统到目前为止运行的时间, 当前登陆系统的用户数量, load average后面的三个数分别是距离现在1分钟、5分钟、15分钟之前的负载情况。
load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果>1的时候就表明系统在超负荷运转了。
top命令的第二行:
依次对应:tasks表示任务(进程),240 total则表示现在有240个进程,其中处于运行中的有2个,238个在休眠(挂起),stopped状态即停止的进程数为0,zombie状态即僵尸的进程数为0个。(僵尸进程就是已经死了但还占用着pid号)
top命令的第三行,cpu状态:
依次对应:
us: user - 用户空间占用cpu的百分比
sy: system - 内核空间占用cpu的百分比
ni: niced - 改变过优先级的进程占用cpu的百分比
id: idle - 空闲cpu百分比
wa: IO wait - IO等待占用cpu的百分比
hi: Hardware IRQ - 硬中断 占用cpu的百分比
si: software Interrupts - 软中断 占用cpu的百分比
st: 被hypervisor占用的CPU百分比(多个虚拟机抢CPU导致部分cpu没抢到)
top命令第四行,内存状态:
依次对应:物理内存总量(约1.8G), 空闲内存总量(约1G),使用中的内存总量(约440M),缓冲内存量 (约380M)
使用中的内存总量(used)指的是现在系统内核控制的内存数,空闲内存总量(free)是内核还未纳入其管控范围的数量。buff/cache是系统用来缓存一些打开的文件占用的内存,当程序需要使用内存时,系统会把这部分内存给程序用。因此在linux上free内存会越来越少,但不用为此担心 。
top命令第五行,swap交换分区:
依次对应:交换区总量(2G),空闲交换区总量(2G),使用的交换区总量(0),可用交换区总量
对于内存监控,在top里我们要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了。
top命令第六行是空行
top命令第七行,各进程的监控:
依次对应:
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时间总计,单位1/100秒
COMMAND — 进程名称(命令名/命令行)
二.交互命令
1.多U多核CPU监控
在top基本视图中,按键盘数字“1”,可监控每个逻辑CPU的状况:对于多核cpu进行单独每个cpu的占用情况进行查看, 见下图双核cpu:
2.高亮显示当前运行进程
敲击键盘“b” 高亮running状态的进程,top的视图变化如下:
3.进程字段排序
默认进入top时,各进程是按照CPU的占用量来排序的
敲击键盘“x”(高亮排序那一列)
可通过按” >”或” <”向右或左改变排序列
top状态的快捷键功能
h 显示帮助画面,给出一些简短的命令总结说明
k 终止一个进程。
i 忽略闲置和僵死进程。这是一个开关式命令。
q 退出程序
r 重新安排一个进程的优先级别
S 切换到累计模式
s 改变两次刷新之间的延迟时间(单位为s
f或者F 从当前显示中添加或者删除项目
o或者O 改变显示项目的顺序
l 切换显示平均负载和启动时间信息
m 切换显示内存信息
t 切换显示进程和CPU状态信息
c 切换显示命令名称和完整命令行
M 根据驻留内存大小进行排序
P 根据CPU使用百分比大小进行排序
T 根据时间/累计时间进行排序
W 将当前设置写入~/.toprc文件中
常用命令显示
- 显示 完整命令
top -c
- 设置信息更新次数
top -n 2 【表示更新两次后终止更新显示】
- 设置信息更新时间
top -d 3 【表示更新周期为3秒】