0 背景

在 linux 系统上开发的时候,经常要用到 top 命令来对进程以及资源进行监控,本文对该命令的输出以及使用方法做一个介绍。

1 输出解析

如下图所示为在我的系统中运行 top 指令后输出的内容

1.1 第一行

第一行是任务队列信息,同 uptime 命令输出的内容一致

14:18:36

系统当前时间

up 151 days, 21:18,

系统运行时间为 151 天 21 小时 18 分钟

13 users

当前登录用户数

load average: 0.37, 0.21, 0.22

CPU 负载,即任务队列的平均长度。 三个数值分别为  1 分钟、5 分钟、15 分钟前到现在的平均值。

1.2 第二行

进程信息汇总

Tasks: 744 total

进程总数

1 running

正在运行的进程数

499 sleeping

睡眠的进程数

0 stopped

停止的进程数

0 zombie

僵尸进程数

1.3 第三行

CPU 使用率

%Cpu(s):  0.1 us,

用户空间占用 CPU 百分比

0.2 sy

内核空间占用 CPU 百分比
0.0 ni 用户进程空间内改变过优先级的进程占用CPU百分比
99.7 id 空闲 CPU 百分比

0.0 wa

等待输入输出的CPU时间百分比

0.0 hi

hardware IRQ,硬中断占用 CPU 时间百分比

0.0 si

software IRQ,软中断占用CPU的百分比
0.0 st Steal Time

1.4 第四行和第五行

显示的是内存占用情况

KiB Mem : 65633064 total, 物理内存总量
21800724 free,  空闲内存总量
3450376 used,  使用的物理内存总量
40381964 buff/cache 用作内核缓存的内存量
KiB Swap:  8000508 total,  交换区总量
7649788 free, 空闲交换区总量
350720 used. 使用的交换区总量
61509196 avail Mem 缓冲的交换区总量。 内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖, 该数值即为这些内容已存在于内存中的交换区的大小。相应的内存再次被换出时可不必再对交换区写入。

1.5 第六行

剩余的为进程详细信息

PID

进程 ID 号

USER 进程所有者的用户名
PR 进程优先级
NI nice 值,负值表示高优先级,正值表示低优先级
VIRT 进程使用的虚拟内存总量,单位kb。VIRT = SWAP + RES
RES 进程使用的、未被换出的物理内存大小,单位 kb。RES = CODE + DATA
SHR 共享内存大小,单位 kb
S 进程状态。
            D = 不可中断的睡眠状态
            R = 运行
            S = 睡眠
            T = 跟踪/停止
            Z = 僵尸进程
%CPU 上次更新到现在的 CPU 时间占用百分比
%MEM 进程使用的物理内存百分比
TIME+ 进程使用的 CPU 时间总计,单位 1/100 秒
COMMAND 启动进程对应的命令

2 命令方法

上一节我们介绍了常规 top 命令输出的内容,接下来对常用的命令参数进行一个介绍

2.1 快捷方式

运行 top 之后,可以按下边对应的字母(区分大小写)进行一些功能的切换,个人认为有用的标红

  • h 或者?  : 显示帮助画面,给出一些简短的命令总结说明。
  • k  :终止一个进程。系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽。
  • i:忽略闲置和僵死进程。这是一个开关式命令。
  • q:  退出程序。
  • r:  重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10。
  • S:切换到累计模式。
  • s :  改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s。如果有小数,就换算成ms。输入0值则系统将不断刷新,默认值是5 s。需要注意的是如果设置太小的时间,很可能会引起不断刷新,从而根本来不及看清显示的情况,而且系统负载也会大大增加。
  • f 或者 F :从当前显示中添加或者删除项目。
  • o 或者 O  :改变显示项目的顺序。
  • l: 切换显示平均负载和启动时间信息。即显示影藏第一行
  • m: 切换显示内存信息。即显示影藏内存行
  • t : 切换显示进程和CPU状态信息。即显示影藏CPU行
  • c:  切换显示命令名称和完整命令行。 显示完整的命令。 这个功能很有用。
  • M : 根据驻留内存大小进行排序。
  • P:根据CPU使用百分比大小进行排序。
  • T: 根据时间/累计时间进行排序。
  • W:  将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。

2.2 命令行参数

我们还可以在启动的时候,带上参数进行配置,首先只用 help 指令可以查看支持哪些参数

$ top -hprocps-ng 3.3.12
Usage:top -hv | -bcHiOSs -d secs -n max -u|U user -p pid(s) -o field -w [cols]
  • -hv :输出帮助信息以及版本信息
  • -bcHiOSs:输出一些关键字
  • -d:调整输出刷新间隔,单位为秒
  • -n:指定更新次数
  • -u:监控指定用户的进程
  • -p:监控指定进程
  • -o:指定通过哪些字段进行排序,如内存、CPU等
  • -w:输出的宽度

至此,完成了对 top 指令的一个解析及应用方法介绍,更详细的介绍可以使用 man 指令查看。

Linux运维之top命令解析相关推荐

  1. 97 条 Linux 运维工程师常用命令总结

    97 条 Linux 运维工程师常用命令总结 1.ls [选项] [目录名 | 列出相关目录下的所有目录和文件 -a 列出包括.a开头的隐藏文件的所有文件-A 通-a,但不列出"." ...

  2. linux运维笔记:DNS解析IP地址的过程(dns解析的原理 )

    linux运维笔记:DNS解析IP地址的过程(dns解析的原理 ) 1.首先:说一下dns解析的流程,大家都知道,计算机之间只能通过ip相互通信,因为ip不好记,于是才使用dns服务器把域名解析为相应 ...

  3. strace跟踪java,linux运维利器—–strace命令

    strace常用来跟踪进程执行时的系统调用和所接收的信号. 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式 ...

  4. Linux运维学习路径全解析

    作为一个小白,想要入门Linux还是有一定难度的,想要将Linux作为谋生技能更是需要你付出更多的经历和努力,我分享一些我之前自学Linux的经验以及一些学习网站资源,希望能对你有所帮助. 先贴一张L ...

  5. linux运维排查常用命令(开发专享)

    cd: 进入到某个目录下 cd hikvision ll:详细展示该目录下有的文件 ll su 用户名:切换用户名 例子: su root 根据字符串在文件中查找信息:Grep –a –i 字符串 文 ...

  6. Linux运维入门快捷命令设置说明大全

    文章目录 一.目录结构说明 二.重要目录数据信息说明 三.etc目录下重要的数据文件 四.usr目录下重要的数据文件 五.var目录下重要的数据文件 六.proc目录下重要的数据文件 七.系统优化相关 ...

  7. Linux运维之常见命令

    文件管理类命令 :cp : 复制cp SRC DEST如果DEST不存在,系统会自动创建文件或目录如果DEST存在 :如果SRC是一个文件 : 如果DEST是一个文件,会直接将SRC中的内容覆盖DES ...

  8. Linux运维:ulimit命令修改打开文件的句柄数

    文章目录 ulimit命令语法 参数说明: 查看本机设置的参数: ulimit修改打开文件的句柄数 场景 解释: 修改 1.修改file-max 2.修改ulimit的open file 注意事项 d ...

  9. 网易云课堂Linux运维在线班命令笔记

    #################################### ###在线班-命令记录 ############ #################################### 1 ...

最新文章

  1. mxnet转onnx
  2. 用.NET CF进行HardReset?
  3. mysql 实现按首字母字典序排序以及根据字段汉字首字母搜索
  4. pytorch制作CNN的类印象图 class impression(类别生成图)及生成对抗攻击样本
  5. 01基于配置文件方式的SpringMVC,三种HandlerMapping,三种控制器
  6. 支付宝服务窗API接口开发php版本
  7. python安装wxpython库_wxPython:python 首选的 GUI 库
  8. VGG Pool5 Feature Map特征提取
  9. 用英伟达Jetson Nano运行PyTorch Fast.ai丨手把手教程+第三方工具
  10. 访问服务器显示无法访问目标主机,发送4接收4无法访问目标主机
  11. c语言基础编程题山东科技大学,C语言练习题〔山东科技大学吐血整理〕.doc
  12. bzoj 3360: [Usaco2004 Jan]算二十四(暴力+表达式求值)
  13. System Security Services Daemon(SSSD)系统安全服务守护进程
  14. 保密协议无效认定_保密协议其实并没用?
  15. 随笔:读书笔记--《九败一胜:美团创始人王兴创业十年》
  16. Tecplot 360 安装后弹出“Is your Tecplot 360 EX liense valid?”解决方法
  17. EasyBoot使用方法
  18. JLA服务器性能测试,Shell脚本 | 性能测试之CPU占有率
  19. 参与修谱工作,要具备哪些能力?光会修谱可不行
  20. 05二项式系数Cnk.md

热门文章

  1. Axure 9 实战案例,动态面板的应用 6,导航菜单栏的手风琴效果
  2. 机械设备出入库管理用什么软件管理?
  3. cad的php文件怎么用,cad文件版本转换工具怎么使用
  4. 高级工程师职称申报到底需要参加答辩不?
  5. 杭州星滔企业管理公司成立 马云持股
  6. 请不要责备那些翻译书的人
  7. R语言倾向性评分:匹配
  8. PHP中文网免费视频教程
  9. vba学习笔记 while wend 的使用
  10. 阿里云服务器购买和配置全流程