简介

  • top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况。
  • top动态的显示系统当前的进程和其他状况,
  • 如下图:

shell top

参数含义

top:
01:11:31            表示当前系统时间
up 4:17             表示系统运行时间
1 user              当前登录用户数
load average        系统负载,即系统任务队列的平均长度。三个数值分别为 1分钟 5分钟 15分钟 到现在的平均值。load average是每隔5秒钟检查一次活跃的进程数,计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。

Tasks:
total               进程总数
running             正在运行的进程数
sleeping            睡眠的进程数
stopped             停止的进程数
zombie              僵尸进程数

%Cpu:
0.1 us              用户空间占用CPU百分比
0.1 sy              内核空间占用CPU百分比
0.0 ni              用户进程空间内改变过优先级的进程占用CPU百分比
99.8 id             空闲CPU百分比
0.0 wa              等待输入输出的CPU时间百分比
0.0 hi              硬件CPU中断占用百分比
0.0 si              软中断占用百分比
0.0 st              虚拟机占用百分比

KiB Mem:
8144452 total           物理内存总量
3792516 free            空闲内存总量。指内核还未纳入其管理范围的内存数
1751356 used            使用的物理内存总量。指内核控制的内存数,内核管理的内存数不一定都是内核正在使用中的,还包括以前使用过,现在可重复使用的内存
2600580 buff/Cache      用作内核缓存的内存量

KiB Swap:
2097148 total           交换区总量
2097148 free            空闲交换区总量
0 used                  使用的交换区总量
6068824 avail Mem       缓冲的交换区总量

== 空行 ==

PID               进程id
USER              用户名
PR                优先级
NI                nice值,负值表示最高优先级,不是从终端启动的进程则为 ?
VIRT              进程使用的虚拟内存总量
RES               进程使用的未被换出的物理内存大小 Kb
SHR               共享内存大小 Kb
S                 进程状态(D=不可中断的睡眠状态,R=运行就绪 S=睡眠, T=跟踪/停止, Z=僵尸进程, O=进程正在处理器运行, I=空闲状态, S=进程正在等待更多的内存页)
%CPU              上次更新到现在的CPU时间占用百分比
%MEM              进程使用的物理内存百分比
TIME+             进程使用的CPU时间总计,单位1/100秒
TIME              进程使用的CPU时间总计,单位秒
Flags             任务标志,参考 sched.h
WCHAN             若该进程在睡眠,则显示睡眠中的系统函数名
COMMAND           命令名/命令行
nDRT              最后一次写入到现在,被修改过的页面数。
nFLT              页面错误次数
DATA              可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
CODE              可执行代码占用的物理内存大小,单位kb
  • 补充:在top命令运行期间 按 f 键可以打开想要查看的参数,小写是打开参数,大写是关闭参数,enter 返回 top 命令界面
  • Mem 中的free + Mem中的buffers + Swap 中的avail 即为现在可用内存数
  • 当 Swap 中的 used 这个数值在不断变化,表示内核在不断进行内存和swap的数据交换,表示真正的内存不够用了

top命令行选项

top [-] [d] [p] [q] [c] [C] [S] [s] [n]

d     指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。
p     通过指定监控进程ID来仅仅监控某个进程的状态。
q     该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。
S     指定累计模式
s     使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。
i     使top不显示任何闲置或者僵死进程。
c     显示整个命令行而不只是显示命令名

top运行时交互命令

Ctrl+L        擦除并且重写屏幕。
h 或者 ?      显示帮助画面,给出一些简短的命令总结说明。
k             终止一个进程。系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽。
i             忽略闲置和僵死进程。这是一个开关式命令。
q             退出程序。
r             重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10。
S             切换到累计模式。
s             改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s。如果有小数,就换算成m s。输入0值则系统将不断刷新,默认值是5 s。需要注意的是如果设置太小的时间,很可能会引起不断刷新,从而根本来不及看清显示的情况,而且系统负载也会大大增加。
f或者F        从当前显示中添加或者删除项目。
o或者O        改变显示项目的顺序。
l             切换显示平均负载和启动时间信息。
m             切换显示内存信息。
t             切换显示进程和CPU状态信息。
c             切换显示命令名称和完整命令行。
M             根据驻留内存大小进行排序。
P             根据CPU使用百分比大小进行排序。
T             根据时间/累计时间进行排序。
W             将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。
文章目录