top命令
作用
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于windows的任务管理器。top是一个动态显示过程,即可以通过用户按键输入来不断的刷新当前的状态,会占用前台。top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定.
格式
top [参数]
常用参数
- -b 批处理
- -c 显示完整的命令
- -I 忽略失效的进程
- -s 保密模式
- -S 累计模式
- -d<时间> 设置刷新间隔时间,单位s
- -u<用户名> 指定显示某个用户的
- -p<进程号> 指定显示某个进程的
- -n<次数> 指定循环次数
当指定了-d参数而没有指定-n参数时,会不断的循环刷新,默认的刷新时间是5s
使用例子
1 | root@dcLunatic:~# top |
前五行是当前系统情况的统计信息区
- 第一行,任务队列信息,同uptime命令的执行结果,具体参数说明情况如下
top - 01:02:01 up 11:58, 1 user, load average: 1.45, 1.27, 0.88
- 01:02:01 当前系统时间
- up 11:58 系统已经运行了11:58时间长了
- 1 user 当前有1个用户登录系统
- load average: 1.45, 1.27, 0.88 当前系统的负载统计值,分别是1分钟,5分钟,15分钟的。每5s钟检查一次活跃的进程数,然后按照特定的算法计算出负载情况。如果这个数除以逻辑cpu的数量,结果高于5就表明系统在超负荷运行了
- 第二行,Tasks,任务(进程),具体信息说明情况如下
Tasks: 260 total, 2 running, 258 sleeping, 0 stopped, 0 zombie
系统现在总共有206个进程,其中处于运行中的有两个,258个在休眠(sleep),stoped状态的有0个,僵尸进程0个。
- 第三行,%Cpu(s),cpu状态信息,具体属性说明如下
%Cpu(s): 4.1 us, 1.2 sy, 0.0 ni, 94.6 id, 0.0 wa, 0.0 hi, 0.2 si, 0.0 st
- 4.1 us 用户空间占用cpu的百分比
- 1.2 sy 内核空间占用cpu的百分比
- 0.0 ni 改变过优先级的进程占用cpu的百分比
- 94.6 id 空闲cpu百分比
- 0.0 wa IO等待占用cpu的百分比
- 0.0 hi 硬中断(Hardware IRQ)占用cpu的百分比
- 0.2 si 软中断(Software Interrupts)占用cpu的百分比
- 第四行,内存状态,具体信息如下
MiB Mem : 3834.7 total, 751.4 free, 2192.0 used, 891.4 buff/cache
- 3834.7 total 物理内存大小为3834.7M,大概是4G
- 751.4 free 空闲的内存总量为751.4M
- 2192.0 used 使用中的内存总量为2192.0M
- 891.4 buff/cache 缓冲的交换区总量891.4M
- 第五行,swap交换分区信息,具体信息说明如下
MiB Swap: 3982.0 total, 3106.7 free, 875.2 used. 986.5 avail Mem
- 3982.0 total 总共有3982.0M的交换空间
- 3106.7 free 空闲中的交换空间有3106.7M
- 875.2 used 使用中的交换空间有875.2M
- 986.5 avail 缓冲中的(可利用的)交换空间有986.5M
使用中的内存总量(used)指的是现在系统内核控制的内存数,空闲内存总量(free)是内核还未纳入其管控范围的数量。纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交还到free中去,因此在linux上free内存会越来越少,但不用为此担心。
- 第六行,空行,这一行是用来交互实时执行一些东西的。
- 第七行,各进程(任务)的状态监控,项目列信息说明如下
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
- PID 进程的id
- USER 进程所有者
- PR 进程优先级
- NI nice值,负责表示高优先级,正则表示低优先级
- VIRT 进程中使用虚拟内存总量,单位是kb。VIRT=SWAP+RES
- RES 进程中使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
- SHA 共享内存大小,单位kb
- S 进程状态 D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
- %CPU 上次更新到现在CPU时间占用百分比
- %MEM 进程使用的物理内存占用百分比
- TIME+ 进程使用的CPU时间总计,单位ms
- COMMAND 进程名称或者命令行
使用技巧
- 多核cpu监控
在top的基本视图中,按下键盘数字’1’,可监控每个逻辑cpu的状况
%Cpu(s): 2.7 us, 0.8 sy, 0.0 ni, 96.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
按下1后变成
1 | %Cpu0 : 0.3 us, 0.7 sy, 0.0 ni, 98.7 id, 0.3 wa, 0.0 hi, 0.0 si, 0.0 st |
高亮显示当前运行进程
- 敲击键盘’b’,打开关闭
加亮
当前正在running中的进程 - 敲击键盘’y’,打开关闭
高亮
当前正在running中的进程
- 敲击键盘’b’,打开关闭
进程显示的字段排序
默认进入top时,各进程是通过cpu的占用量来排序的。
- 敲击键盘’x’,打开关闭排序列的加亮效果
- 通过’shift+<’或’shift+>’来左右改变排序列
top交互命令
在top命令过程中可以使用一些交互命令,这些命令都是单字母的,如果在命令行中使用了s选项,其中一些命令可能会给屏蔽。
- h 显示帮助画面,给出一些简短命令总结说明
- k 终止一个进程
- i 忽略闲置和僵死进程
- q 退出程序
- r 重新安排一个进程的nice值
- S 打开关闭累计模式
- s 改变两次刷新的间隔时间,如果有小数,就换算成ms,输入0表示不断刷新
- f 从当前的显示中添加项目
- F 从当前的显示中删除项目
- I 切换平均负载和启动时间信息
- t 切换显示进程和cpu状态信息
- c 切换显示命令名称和完整命令行
- M 根据驻留内存大小进行排序
- P 根据CPU使用百分比大小进行排序
- T 根据时间/累计时间进行排序
- w 将当前设置写入~/.toprc配置文件中