Linux Top

当我们在终端输入 top 命令时,会弹出一个变化的页面,打印出当前系统的大量重要指标,以及很多进程当前的运行情况:

可以看到,top 命令主要是两部分,第一部分为 头部指标,打印的是当前系统级别指标;第二部分为 进程任务监控,打印各个进程的当前运行情况。

头部指标

我们从上往下,逐行进行介绍。

top

这一行与 uptime 命令的输出极其相似:

打印的参数意义为:

  • 21:18:48 当前系统时间。
  • up 4:40 当前系统已经连续运行的时间。
  • 4 users 当前登陆的用户数量。
  • load average: 0.00, 0.01, 0.05 当前的平均负载: 5/10/15 分钟的平均负载。

其中 load average 是每 5 秒钟检查一次活跃的进程数,然后按照特定的算法计算的得出。使用
这 个 负 载 数 ÷ 逻 辑 C P U 个 数 > 1 这个负载数 ÷ 逻辑CPU个数 > 1 这个负载数÷逻辑CPU个数>1

说明系统已经在超负荷运转了。

这一行在 top 页面时,可以通过 l 进行开关。

Task

这行标识系统当前运行的进程有多少,多少个正在运行,有多少个在休眠,有多少个是 stopped 状态, 僵尸状态有多少个。

%Cpu

这行标识当前 CPU 的负载情况,显示的是百分比单位。

  • us

运行用户进程(未调整优先级)所占用的 cpu 时间,如果这个数很大,那么说明当前瓶颈很可能在 cpu 上,程序大多数为计算密集型。

  • sy

运行内核进程所占用的 cpu 时间。如果这个数较大,一般说明服务器资源较小,或出现其他问题。

  • ni

us 相同,都是运行用户进程所占用的 cpu 时间,如果这个数很大,但他是调整优先级的进程。

  • wa

用于等待 io 完成的 cpu 时间,如果这个值很大,说明程序大多数为 io 密集型。这时候可能 cpu 也会比较繁忙,因为一直在切换上下文。

  • hi

处理硬件中断的 cpu 时间。

  • si

处理软件中断的 cpu 时间。

  • st

虚拟机 hypervisor 占用的 cpu 时间,如果当前处于一个 hypervisor 下的 vm,这个 hypervisor 其实也是要消耗一部分 cpu 处理时间的。

top 命令界面,使用 t 进行切换,可以转换 %cpu 和 tasks 这两行的表达显示。

KiB Mem & KiB SWap

这两行标示的是内存的使用情况,类似于 free 命令的结果,但有区别:

free # free 命令结果

类似于 task 和 %Cpu 行,使用 m 可以切换 Kib Mem 和 KiB Swap 行的表示方式。

Kib Mem 指标

  • Mem total

物理内存总量。

  • Mem free

内存空间空闲总量。

  • Mem used

使用中的内存总量。

  • Mem buff/cache

内存中缓存的占用,如果开了关系型数据库,一般此类会占用较多。

Kib Swap 指标

  • Swap total

交换分区总量。

  • Swap used

交换分区占用量。

  • Swap free

交换分区空闲总量。

  • Swap avial Mem

交换分区中缓冲的总量。

理解

如果用 windows 的内存管理来看待这些指标是不行的,windows 是每个程序使用多少,占用多少;但 linux 有内存管理的特殊性,不能单单只看 free 这一项来认为我们内存空间只有这么多了。

Mem 中内存总量 used 指的是现在系统内核控制的内存大小,而 free 是内核认为还未纳入其管控的数量(如果你现在是虚拟机就知道我们给虚拟机 16G mem,并不是立马就占用了 16G。)。而 used 代表控制的内存大小,并不是当前程序正在使用的,而最多只能表示使用过,在使用后 used 并不会变为 free,所以理论上 free 只会越来越少,并不能通过这一个指标来判断当前服务器内存已经不足。

但我们总是想看到当前系统还剩余多少内存可以给新开的程序使用,这里有个简易的公式:

f r e e + b u f f e r s + c a c h e d = a v a i l a b l e free + buffers + cached ~= available free+buffers+cached =available

而对于 Swap 空间,如果 Swap空间大小一直在不停变化,说明内核在不断在 Mem 和 Swap 两个空间中交换数据,说明 Mem 空间已经无法满足,Swap 中已经开始占用,系统内存真正不够用了!

进程任务监控

监控此时此刻系统中运行的任务情况:

  • PID 进程id,代表进程的唯一标识(那个该死的屁ID)

  • USER 该进程所有者的实际用户名

  • PR 进程的优先级,如果是字母rt标识这些进程处于实时优先级 rt_priority

这个值是最终的优先级标识,越大,优先级越高。

  • NI nice值,-20~20,越小优先级越高,用户最大设置为19.

这个值,设置后linux自己调度计算出最终优先级PR

  • VIRT 进程使用的虚拟内存总量,单位为kb,计算公式为:

S W A P + R E S = V I R T SWAP+RES=VIRT SWAP+RES=VIRT

  • RES 进程使用(还未被换出的)物理内存大小,单位kb,计算公式为:
    R E S = C O D E + D A T A RES=CODE+DATA RES=CODE+DATA

  • S 当前进程状态

  • D 不可中断的睡眠状态

  • R 运行

  • S 睡眠

  • T 跟踪/停止

  • Z 僵尸进程

  • %CPU 占用的 cpu 百分比

  • %MEM 占用的 mem 百分比

  • TIME+ 运行时间

  • COMMAND 进程名称

如果想看具体的进程路径或者启动命令,可以按 c 进行切换。( ls -ltr /proc/$PID/exe)

单位都可以通过 e 进行切换:

排序

默认排序是按照当前 CPU 排序,然后按照 PID 进行排序,我们更多的时候是希望自定义各类排序。我们可以在 top 命令期间按下:

P 以 cpu 占据时间百分比进行排序。

M 以 mem 占据时间百分比进行排序。

T 以积累占用 cpu 时间进行排序。

当然,我们还可以通过其他办法进行排序,比如:bx 也是博主经常使用的方式。

然后可以使用 shift+<shift+> 进行左右移动,按照 head 头进行降序排序。

其中 b 为高亮,x 为选中排序。

进程控制界面

top 命令界面,按下 f 能够进入进程控制页面。

在这个页面中,使用 空格 或者 d 能切换是否需要显示。

使用 s 来选择以那一列进行排序,

使用 进行命令选择。

q 退出到之前的页面。

帮助文档页面

top 命令页面,按下 h 可以进入帮助文档页面,里面详细的说明了各种使用参数:
### 管理进程

杀死进程

k 可以给对应 pid 一个 kill -9 信号,用来杀死进程。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-t4UI6YiD-1669301427531)(static/boxcni80uVzIZ54Cdcy8Kb4ORnf.png)]

nice 赋值

r 命令可以重新给一个 nice 值,进行优先级排序

退出

q 或者 ctrl+c

Linux Top 详细介绍,包含task排序相关推荐

  1. Linux crontab 详细介绍及执行php

    Linux crontab 命令介绍 语法介绍 使用权限 : root用户和crontab文件的所有者 crontab格式 语法 : crontab [-e [UserName]|-l [UserNa ...

  2. 操作系统linux配置php,操作系统--Linux的详细介绍

    一 概述 1.什么是操作系统? 操作系统是人与计算机硬件交互的中介.用户无法直接与计算机硬件交互,无法直接指挥计算机工作,因此需要一个中介,这个中介就是操作系统,用户向操作系统发出命令,由操作系统直接 ...

  3. linux入门详细介绍

    此文章较长,适合慢读,可查看linux入门大全:包括零基础入门.推荐Linux资源:linux视频文档资料下载 操作系统是一种特殊的软件,用来让计算机硬件和软件协同工作,并且处理我们敲打键盘和移动鼠标 ...

  4. linux文件目录详细介绍

    linux文件目录 目录 /bin 存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里 /etc 存放系统管理和配置文件 /home 存放所有用户文件的根目录,是用户主目录的基点 ...

  5. php linux权限,Linux权限详细介绍

    在理解权限之前我们要知道linux中的用户组: 在Linux中每个用户都属于一个组,Linux中每个文件都都有所有者.所有组.其他组.这几个概念我们可以用现实中的例子来理解.比如说你有一本书,那么你就 ...

  6. linux top命令 什么意思,Linux TOP 命令介绍理解

    TOP 命令的含义 TOP 命令是常用的 Linux 性能监控的命令,执行后,界面如下: 第一行 top - 14:09:04 up 3 days, 21:20, 0 users, load aver ...

  7. 【数据结构】什么是内排序、外排序?内排序详细介绍

    目录 一.什么是内排序?什么是外排序? 二.内排序详细介绍 1. 定义 2.排序分类&稳定性 3.内排序的方法 4.排序算法的性能评价 5.待排序记录的类描述 6.算法:顺序表插入 前言 排序 ...

  8. 嵌入式linux完整top命令,linux下top命令详细介绍

    top 命令是 Linux 下常用的系统资源占用查看及性能分析工具,能够实时显示系统中各个进程的资源(比如cpu.内存的使用)占用状况,top命令的执行结果是一个动态显示过程,即可以通过用户按键来不断 ...

  9. Linux shell脚本基础学习详细介绍(完整版)一

    Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提. 1. Li ...

最新文章

  1. BZOJ3996 [TJOI2015]线性代数 【最小割】
  2. VS2013试用期结束后如何激活
  3. 洛谷 P2114 [NOI2014]起床困难综合症 解题报告
  4. 初学__Python——Python代码的组织形式
  5. 一个测试新人的职业规划——三个月
  6. python实验结论怎么写_Python实验课:Python元组数据及其运算
  7. 对话框:创建对话框模板和修改对话框属性
  8. 天体物理科研作图格式-要求-plot_example.py
  9. 学生用计算机重启,如何使学校的电脑在重启后不自动还原系统?
  10. ps安装了可以打开但开始里面找不到_PS CC2017安装教程【64/32位】
  11. Ubuntu虚拟机安装
  12. matlab实现通信系统,香农定理的介绍
  13. 挂载NTFS分区的两种方法
  14. lammps教程:delete_atoms删除原子后原子ID不连续的两种解决方案
  15. 钉钉、微信抢占移动OA入口,其他OA厂商何去何从?
  16. Mx Linux 截图工具-shutter
  17. TP FN FP TN
  18. MATLAB 存放字符串(循环中调用字符串)
  19. 【AI折腾录】stable web ui基础【sd安装、lora vae embedding hyperwork等基础概念】
  20. win10环境下修改cmd中用户名称为英文

热门文章

  1. PC端无线连接打印机
  2. 1028 例题3-5 求一元二次方程的根
  3. 1100亩烟台深耕水稻 国稻种芯·中国水稻节:山东盐碱地水稻
  4. 智能餐厅摆动手势点餐人脸识别支付
  5. 下载最新的Windows10官方系统镜像
  6. 百度地图之云图(热图)预警
  7. nodejs-5.1 ejs模板引擎
  8. 测试/开发程序员的思考,突破变得更强......
  9. excel表格怎样汇总
  10. 软件中级设计师 - 程序语言设计