赞
踩
系列专题:Linux运维入门教程
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。
下面详细介绍它的使用方法。top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定.
语法:
top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]
参数说明
- d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s
- q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行
- c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称
- S : 累积模式,会将己完成或消失的子进程 ( dead child process ) 的 CPU time 累积起来
- s : 安全模式,将交谈式指令取消, 避免潜在的危机
- i : 不显示任何闲置 (idle) 或无用 (zombie) 的进程
- n : 更新的次数,完成后将会退出 top
- b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内
- top - 22:00:48 up 20:17, 1 user, load average: 0.00, 0.01, 0.05
- Tasks: 143 total, 1 running, 142 sleeping, 0 stopped, 0 zombie
- %Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
- KiB Mem : 7990060 total, 7307716 free, 422412 used, 259932 buff/cache
- KiB Swap: 3145724 total, 3145724 free, 0 used. 7319768 avail Mem
-
- PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
- 1 root 20 0 193952 7068 4184 S 0.0 0.1 0:01.48 systemd
- 2 root 20 0 0 0 0 S 0.0 0.0 0:00.03 kthreadd
- 4 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
第一行:系统运行信息
显示系统运行当前时间是22:00:48分,系统运行了20:17,当前有1个用户登录,系统平均负载压力情况为0.00(1min的平均负载压力)、0.01(5min的平均负载压力)、0.05(15min的平均负载压力)
注:load average:每隔5s检查一次活跃的进程数,然后按特定算法计算出来的。一般当这个数值除以CPU的核数得到的值大于3~5时,就标明系统的负载压力已经很高了。
第二行:显示的是任务信息
总共143个进程,1个进程正在执行,142个进程正在休眠,0个进程停止,0个僵尸进程
第三行:显示的是CPU运行信息
0.0us表示用户模式下CPU占比为0.0%,
解释:进程在用户地址空间中消耗CPU时间的百分比。像shell程序、各种语言的编译器、数据库应用、web服务器和各种桌面应用都算是运行在用户地址空间的进程,这些程序如果不是处于idle状态,那么绝大多数的CPU时间都是运行在用户态。
0.0sy标识系统模式下CPU占比0.0%,
解释:进程在内核地址空间中消耗CPU时间的百分比。所有进程要使用的系统资源都是由Linux内核处理的。当处于用户态(用户地址空间)的进程需要使用系统的资源时,比如需要分配一些内存、或是执行IO操作、再或者是去创建一个子进程,此时就会进入内核态(内核地址空间)运行。事实上,决定进程在下一时刻是否会被运行的进程调度程序就运行在内核态。对于操作系统的设计来说,消耗在内核态的时间应该是越少越好,在实践中有一类典型的情况会使sy变大,那就是大量的IO操作,因此在调查IO相关的问题时需要着重关注它。
0.0ni表示改变过优先级的进程的CPU占比为0.0%,
解释:ni是nice的缩写,可以通过nice值调整进程用户态的优先级,这里显示的ni表示调整过nice值的进程消耗掉的CPU时间。如果系统中没有进程被调整过nice值,那么ni就显示为0。
100.0id表示空闲状态的CPU占比为100.0%,
0.0wa表示因为I/O等待造成的CPU占用比为0.0%,
解释:CPU等待磁盘IO操作的时间。和CPU的处理速度相比,磁盘IO操作是非常慢的,有很多这样的操作,比如:CPU在启动一个磁盘读写操作后,需要等待磁盘读写操作的结果。在磁盘读写操作完成前,CPU只能处于空闲状态。Linux系统在计算系统平均负载时会把CPU等待IO操作的时间也计算进去,所以在我们看到系统平均负载过高时,可以通过wa来判断系统的性能瓶颈是不是过多的IO操作造成的。
0.0% hi 硬中断占用百分比
0.0% si 软中断占用百分比
解释:这两个值表示系统处理中断消耗的时间。中断分为硬中断和软中断,hi表示处理硬中断消耗的时间,si表示处理软中断消耗的时间。硬中断是硬盘、网卡等硬件设备发送给CPU的中断消息,当CPU收到中断消息后需要进行适当的处理(消耗CPU时间)。软中断是由程序发出的中断,最终也会执行相应的处理程序(消耗CPU时间)
0.0st表示CPU等待虚拟机调度的时间占比,这个指标一般在虚拟机中才有,在物理机中该值一般为0
第四行:显示的是内存信息
7990060 total显示的是物理内存总量,
7307716 free表示空闲物理内存,
422412 used显示已使用的物理内存,
259932 buff/cache 表示用于缓存内存大小,以上单位都是kb
第五行:显示虚拟内存使用信息
3145724 total 表示虚拟内存空间总大小
3145724 used 表示虚拟内存使用大小
0free 表示空闲虚拟内存
7319768 avail Mem表示缓存虚拟内存,以上单位都是kb
第六行:参数意思如下
PID:进行编号
USER:进程的持有用户
PR:进程运行的优先级,值越小优先级越高,会越早获取CPU的执行权
NI:进程的nice值,表示进程可被执行的优先级的修正数值
VIRT:进程使用虚拟内存,单位kb
RES:常驻内存,单位kb
SHR:进程使用的共享内存,单位kb
S:进程运行状态。(S:休眠;D:不可中断睡眠;R:运行中;T:跟踪/停止;Z:假死中)
%CPU:进行运行时CPU的占用比
%MEM:进程使用的内存占用比
TIME+:进程占用的CPU总时长
COMMAND:进程名
进入linux系统,输入top,按1,可监控每个逻辑cpu情况,如图:
注:理论上讲逻辑cpu的us之和+sy之和≈%CPU,实际会有偏差。
1. 查看CPU方法
总核数=物理CPU个数✖每颗物理CPU核数
总逻辑CPU数=物理CPU个数 X 每颗物理CPU的核数 X 超线程数
2. 查看物理CPU个数
cat /proc/cpuinfo| grep “physical id”| sort| uniq| wc -l
3. 查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep “cpu cores”| uniq
4. 查看逻辑CPU的个数
cat /proc/cpuinfo| grep “processor”| wc –l
top -p:查看指定进程id的top信息,例如:
top -p 12793
top -H -p:查看指定进程id的所有线程的top信息,例如:
top -H -p 27376
在top视图中,可以按b打开或关闭加亮效果,这样更便于观察。在打开加亮的效果之后,可以按x键实现列的加亮效果,同时可以按”shift+>”或者”shift+<”左右改变排序序列。
在top视图中,可以通过按键实现基于指定列实现排序
排序:默认top以CPU占⽤百分⽐排序
P:CPU占⽤百分⽐排序,%CPU
M:占据内存百分⽐排序,%MEM
T:累计占据CPU时间排序,TIME+
[1]https://www.runoob.com/linux/linux-comm-top.html
[2] https://blog.csdn.net/xiaoxiao_chen945/article/details/121038280
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。