乐趣区

关于linux:Linux-TOP-命令

前言


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”,记录代码人生,行业思考,科技评论

退出移动版