前言


top命令分为汇总区和工作明细区

汇总区

运行工夫和以后登录到零碎的用户


以后工夫是15:39:37. 零碎曾经运行了90天,15个小时,26分钟。以后有两个沉闷用户

内存应用


高低两行以kb模式展现物理内存和swap内存的总计,闲暇(free), 已应用(total)的状况

其中buff/cache ,是在cpu读写硬盘数据时,为了提速在内存中开拓的缓冲(buffer针对写)或缓存区域(cache针对读)

avail mem 是创立新过程时,在不应用swap分区的状况下,可能调配的内存大小。这个大小可能比以后的free还大,这是因为buff/cache中的内存在创立过程时,若须要,也是能够抢占过去的。

过程数统计

过程状态

  • Runnable (R) 曾经在应用cpu执行,或者曾经在cpu的执行队列中的过程
  • Interruptible sleep (S) 过程在sleep中,能够通过一个中断信号完结
  • Uninterruptible sleep (D) 过程在sleep中,在期待i/o操作完结
  • Stopped (T) 曾经完结的过程
  • Zombie (Z) 一个Parent的许多child都曾经退出,但Parent还存在,且没有获取到child的状态之前的过程状态。The kernel maintains various data structures in memory to keep track of processes. A process may create a number of child processes, and they may exit while the parent is still around. However, these data structures must be kept around until the parent obtains the status of the child processes. Such terminated processes whose data structures are still around are called zombies

示例


总共有27个过程,1个运行,26的sleep中

CPU 应用状况

  • us cpu花在user space 过程的上的工夫
  • sy cpu花在system space 过程上的工夫
  • ni cpu的优先级,数值越高,阐明越nice. 越nice,阐明更有礼貌,很容易帮忙他人,放弃本人的资源。所以相应的,在cpu调度时,nice越高的优先级越低,nice越低的优先级越高。ni 示意cpu在手动设置nice值的过程是上执行所花的工夫
  • id CPU闲暇的工夫
  • wa cpu花在io期待上的工夫
  • hi cpu花在解决硬件中断上的工夫,hi全称hardware interrupt
  • si cpu花在处理软件中断上的工夫,si 全称software interput
  • st 如果操作系统上部署的有虚拟机,那cpu会被虚拟机占用肯定资源。此时,即使有其它过程须要资源,cpu也无奈予以调配。相当于cpu资源给偷走了,所以st 示意被偷走的工夫,steal time

Load average 均匀负载

load average前面的三组数字别离是1分钟、5分钟、15分钟的工作负载状况。这里的Load指的出于R(runing)和D(Uninterruptible sleep)的两种状态下的过程数

在单核cpu状况下。load average 为0.4的示意,其cpu利用率只有40%。 load average 为1,示意cpu利用率为100。load average 为2.12阐明,cpu曾经超负荷112% (2.12减满负荷1,即为超负荷局部)

在多核cpu的机器上,须要将以上的1,5,15的负载除以对应的cpu核数,才好评估对应的cpu的负载状况

比方,这个cpu为40核的机器上,其cpu过来一分钟的应用状况为:8.26/40=0.2065 ,阐明cpu使用率只有20%

任务区


展现每个过程的状况

  • PID 过程的id
  • USER 启动过程的用户
  • PR 和 NI NI示意过程的Nice值。PR示意内核在调度该过程的优先级priority。 NI会影响PR
  • VIRT, RES, SHR and %MEM 。 VIRT示意过程应用的所有内存大小,包含虚构应用的swap内存和物理内存。RES 是应用的物理内存大小,%MEM 示意该大小对应的总内存百分比。SHR是以后过程同其它过程共享内存的大小
  • S 以后过程的状态,一个单个字母示意,过程的状态枚举看文档后面
  • TIME+ 该过程启动后,cpu花在其上的工夫,准确到百分之一秒
  • COMMAND 该过程的名称

外围命令

杀死过程

在top名称执行后,按小k,能够进入过程杀死对话框

在前面输出过程号,即可杀死过程

过程排序

在top命令下
按以下大写字母,别离按不同的维度进行排序

  • M 依据内存应用状况排序
  • P 依据CPU应用状况排序
  • N 依据过程ID排序
  • T 依据过程应用CPU的工夫排序

当然你也能够在命令启动时,间接对top加参数。比方以cpu应用状况排序

top -o %CPU

线程运行状况

top命令默认显示的过程的运行状况,在top命令执行后,按大写的H,可进入线程执行状况页面,再按一次H则会到过程展现。或者在启动时对top加参数top -H

辨别内核过程和显示过程启动门路

在top执行后,按小c,则可能展现过程门路,并且对内核过程的名称(command列),加上方括号。再按c切换回去

当然也能够在启动时,加参数top -c

是树形构造展现父子过程关系

top执行后按大V

基于用户过滤过程

在top启动后,按小写u,在输入框中输出对应的用户名

或者在top启动时,通过加参数来过滤用户top -u root

基于表达式过滤过程

在top启动后,按大O,进入过滤表达式的输入框
表达式有以下几种类型

  • COMMAND=getty: Filter processes which contain “getty” in the COMMAND attribute.
  • !COMMAND=getty: Filter processes which do not have “getty” in the COMMAND attribute.
  • %CPU>3.0: Filter processes which have a CPU utilization of more than 3%.

输出等号'=',革除filter表达式

以进度条的模式展现资源应用状况

在top命令下,按t或m来进行进度条显示

如何基于过程id,或程序名来查看其资源占用状况

首先基于ps aux | grep processName 找到对应过程的pid
而后应用top -c -p pid形式单过滤查看该过程的资源占用状况

参考链接

https://www.booleanworld.com/...

欢送关注我的集体公众号"东南偏北UP",记录代码人生,行业思考,科技评论