top命令可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具。它对于所有正在运行的进程和系统载荷提供不断更新的概览信息,包括系统负载、CPU利用分布情况、内存使用、每个进程的内存使用情况等信息。
top [options]
-b:批处理模式
-c:命令/程序名 触发
-d:屏幕刷新间隔
-u user:指定用户名
-p pid(s):指定进程
-n max:设置迭代数量
h:显示帮助画面,给出一些简短的命令总结说明
k:终止一个进程
i:忽略闲置和僵死进程,这是一个开关式命令
q:退出程序
r:重新安排一个进程的优先级别
S:切换到累计模式
s:改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成ms。输入0值则系统将不断刷新,默认值是5s
F:从当前显示中添加或者删除项目
O:改变显示项目的顺序
l:切换显示平均负载和启动时间信息
m:切换显示内存信息
t:切换显示进程和CPU状态信息
c:切换显示命令名称和完整命令行
M:根据驻留内存大小进行排序
P:根据CPU使用百分比大小进行排序
T:根据时间/累计时间进行排序
w:将当前设置写入~/.toprc文件中
任务队列信息:
top - 16:48:22 up 1:05, 1 user, load average: 0.01, 0.00, 0.00
16:48:22 | 系统当前时间 |
up 1:05 | 系统已运行的时间 |
1 user |
当前在线用户 |
load average: 0.01, 0.00, 0.00 | 平均负载:最近1分钟、5分钟、15分钟系统的平均负载 |
Tasks: 241 total, 1 running, 240 sleeping, 0 stopped, 0 zombie
D | 不可中断的睡眠态 Uninterruptible sleep,通常出现在I/O阻塞 |
R | 运行态 Running or running |
S | 睡眠态 Interruptible sleep |
T | 被跟踪或已停止 Stopped |
Z | 僵尸态 process |
%Cpu(s): 0.3 us, 0.4 sy, 0.0 ni, 98.6 id, 0.8 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu(s):表示当前CPU的平均值,默认的top命令配置是显示平均的CPU使用情况,如果按下键盘1可以显示各颗逻辑CPU的使用情况。
%Cpu0 : 1.1 us, 1.8 sy, 0.0 ni, 96.8 id, 0.0 wa, 0.0 hi, 0.4 si, 0.0 st
%Cpu1 : 1.4 us, 2.1 sy, 0.0 ni, 96.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
0.3 us | 用户空间占用CPU百分比 |
0.4 sy | 内核空间占用CPU百分比 |
0.0 ni | 用户进程空间内改变过优先级的进程占用CPU百分比 |
98.6 id | 空闲CPU百分比 |
0.8 wa | 等待输入输出的CPU时间百分比 |
0.0 hi | 硬中断占用CPU百分比 |
0.0 si | 软中断占用CPU百分比 |
KiB Mem : 3059284 total, 1717044 free, 707784 used, 634456 buff/cache
KiB Swap: 3142652 total, 3142652 free, 0 used. 2137320 avail Mem
Mem : 3059284 total | 物理内存总量 |
Mem : 1717044 free | 空闲的内存总量 |
Mem : 707784 used | 使用的物理内存总量 |
Mem : 634456 buff/cache | 缓存 |
Swap: 3142652 total | 交换区总量 |
Swap: 3142652 free | 空闲的交换区总量 |
Swap: 0 used | 使用的交换区总量 |
Swap: 2137320 avail Mem | 可用交换取总量 |
公式:
物理内存总数:Mem_total=Mem_used+Mem_free
实际使用的物理内存数:-buffers/cache=used-buffers-cache
实际可用的物理内存数:+buffers/cache=free+buffers+cache
交换分区对应的内存总数:Swap_total=Swap_used+Swap_free
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 120140 6216 3928 S 0.0 0.2 0:01.65 systemd
PID | 进程id |
USER | 进程所有者的用户名 |
PR | 优先级 |
NI | nice值,负值表示高优先级,正值表示低优先级 |
VIRT | 进程使用的虚拟内存总量,单位kb,VIRT=SWAP+RES |
RES | 进程使用的,未被换出的物理内存大小,单位kb,RES=CODE+DATA |
SHR | 共享内存大小,单位kb |
%CPU | 上次更新到现在的CPU时间占用百分比 |
%MEM | 进程使用的物理内存百分比 |
TIME+ | 进程使用的CPU时间总计,单位1/100秒 |
COMMAND | 命令名/命令行 |
注意:
top监控的日志重定向到文本:top -b -d 1 -n 3 > top.log(一定带上-b参数,否则乱序)