系列专题:Linux运维入门教程


top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。
        下面详细介绍它的使用方法。top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定.

1. 用法

语法:

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 的结果输出到档案内

2. 实践

2.1 默认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:进程名

2.2 查看多核CPU详情

进入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

2.3 指定进程信息

top -p:查看指定进程id的top信息,例如:

top -p 12793

top -H -p:查看指定进程id的所有线程的top信息,例如:

top -H -p 27376

2.4 按指定列高亮显示

在top视图中,可以按b打开或关闭加亮效果,这样更便于观察。在打开加亮的效果之后,可以按x键实现列的加亮效果,同时可以按”shift+>”或者”shift+<”左右改变排序序列。

2.5 按指定列排序

在top视图中,可以通过按键实现基于指定列实现排序

排序:默认top以CPU占⽤百分⽐排序

P:CPU占⽤百分⽐排序,%CPU

M:占据内存百分⽐排序,%MEM

T:累计占据CPU时间排序,TIME+

3.参考资料

[1]https://www.runoob.com/linux/linux-comm-top.html

[2] https://blog.csdn.net/xiaoxiao_chen945/article/details/121038280

Linux运维02:top命令详解相关推荐

  1. Linux(Ubuntu)内存查询top命令详解

    linux中的top命令详解 引言 top命令是UNIX/Linux系统中,用于查看系统详情的第一入口,一般我们查看机器运行状态的时候,总是第一个使用top命令,而实际上top命令展示的数据很多,对于 ...

  2. [Linux运维基础]全家桶详解!Linux中RPM包、wget下载、YUM安装、tar包、zip等包管理方式区别与参数详解,附wget下载源码包编译安装方法

    文章目录 一.RPM.tar.gz 1.rpm包格式 2.rpm包管理 3.tar包管理参数 二.wget 1.wget参数 2.wget下载源码包后编译安装 三.YUM 1.YUM工作原理 2. Y ...

  3. Linux CPU 100%问题 | top 命令详解

    top 命令是 Linux 下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,常用于服务端性能分析. top 命令说明 [tongqianzhang@shwgq-t-tomcat-188 ...

  4. Linux运维之top命令解析

    0 背景 在 linux 系统上开发的时候,经常要用到 top 命令来对进程以及资源进行监控,本文对该命令的输出以及使用方法做一个介绍. 1 输出解析 如下图所示为在我的系统中运行 top 指令后输出 ...

  5. Linux性能分析工具top命令详解

    top命令是linux下常用的性能分析工具,能够实时的显示系统中各个进程的资源占用情况,常用于服务端性能分析. top命令说明: top命令的结果分为两部分: 统计信息:前五行是系统的整体统计信息. ...

  6. linux查看和结束进程,Linux查看和结束进程命令详解

    在ubuntu中,终止一个进程或终止一个正在运行的程序,一般是通过 kill .killall.pkill.xkill 等进行. ----------------------------------- ...

  7. Linux下top命令详解

    Linux下top命令详解 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.top是一个动态显示过程,即可以通过用户按键来不断刷 ...

  8. linux 之top命令详解

    http://bbs.54master.com/redirect.php?tid=272658&goto=lastpost 发表于 2008-9-21 16:31 linux 之top命令详解 ...

  9. linux top命令看磁盘,linux top命令详解

    linux top命令详解 下面详细介绍它的使用方法. top - 01:06:48 up 1:22, 1 user, load average: 0.06, 0.60, 0.48 Tasks: 29 ...

  10. linux中top指令,Linux下top命令详解

    原标题:Linux下top命令详解 1.简介 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.top显示系统当前的进程和其他状况 ...

最新文章

  1. Nutch编译及集成eclipse+mysql开发环境的部署总结
  2. MyBatis like 语句查询
  3. CentOS7中后台运行Node-RED(关闭窗口也能访问服务)
  4. hiveserver2和metastore简要概括作用
  5. mysql 可视化监控_基于Prometheus构建MySQL可视化监控平台
  6. 面经——操作系统(linux为例)
  7. el 能否定义作用域变量_EL表达式语法简介及其使用
  8. 对数的matlab代码,Matlab的对数
  9. 网络1712--c语言函数作业总结
  10. mysql出现2058_解决yog连接mysql出现2058的问题
  11. 蓝桥杯T513---- 算法训练 素因子去重 java
  12. Springboot内嵌tomcat
  13. 分糖问题和插板法:10个相同糖果分给3个小朋友,有几种分法?
  14. JVM调优专题-JVM调试工具
  15. 服务器一直即将注销你的登录,Win10提醒即将注销你的登录怎么办?
  16. Windows下安装PyQt(python3.8+PyQt5)
  17. code.aliyun.com拉取提交代码认证失败
  18. 奥西300工程机服务器装系统,奥西pw300驱动
  19. 小傻蛋的妹妹跟随小甲鱼学习Python的第九节009
  20. Dameware在Winxp下权限配置

热门文章

  1. 小练习----春夏秋冬,回文数,不死神兔,去掉最高最低求和,数组反转,简单加密,switch语句
  2. Linux下ATI显卡驱动安装
  3. php是一段代码嘛,php一段代码不懂下来问上?
  4. linux mount挂载设备(U盘,光盘,iso等)使用说明
  5. 一、hadoop教程
  6. 2021-07-12 POS机是否可以异地刷卡_那些地方不落地
  7. 【5分钟代码练习】01—导航栏鼠标悬停效果的实现
  8. 棒球比赛(Python)
  9. CMD修改计算机睡眠、休眠时间
  10. 11周——警察和厨师为Polic类和Cook类增加了对象成员,请扩充代码