开发者

linux top命令基本实战

开发者 https://www.devze.com 2023-02-03 09:58 出处:网络 作者: 我是沐风晓月
目录一. top命令介绍二. 语法格式及常用选项三. 参考案例3.1 显示进程信息3.2 显示完整的进程命令3.3 以批处理的形式展示3.4 设置信息更新频次3.5 显示指定进程号的信息3.6 top面板中常用参数3.7 其他用法四. top的相
目录
  • 一. top命令介绍
  • 二. 语法格式及常用选项
  • 三. 参考案例
    • 3.1 显示进程信息
    • 3.2 显示完整的进程命令
    • 3.3 以批处理的形式展示
    • 3.4 设置信息更新频次
    • 3.5 显示指定进程号的信息
    • 3.6 top面板中常用参数
    • 3.7 其他用法
  • 四. top的相关说明
    • 4.1 交互命令介绍
  • top命令交互
    • 4.2 top面板每行信息的含义
      • 4.2.1 第一行信息详解
      • 4.2.2 第二三行信息详解
      • 4.2.3 第四五行信息详解
      • 4.2.4 第7行进程信息
  • 五. 更强大的工开发者_网络具htop推荐
    • 总结

      前言

      想要学好linux,命令是基本功,企业中常用的命令大约200多个,不管是写shell脚本还是管理操作系统,最常用的命令必须要牢牢掌握,像我们以前学乘法口诀一样,烂熟于心,唯有如此,才能打牢基础。

      一. top命令介绍

      top命令的功能是用于实时显示系统运行状态,包含处理器、内存、服务、进程等重要资源信息。

      我们常常会把top命令比作是“加强版的Windows任务管理器”,因为除了能看到常规的服务进程信息以外,还能够对处理器和内存的负载情况一目了然。

      使用top命令可以实时感知系统全局的运行状态,非常适合作为接手服务器后执行的第一条命令。

      在top命令中按f按可以查看显示的列信息,按对应字母来开启/关闭列,大写字母表示开启,小写字母表示关闭。带*号的是默认列

      二. 语法格式及常用选项

      依据惯例,拿到一个命令首先查看 帮助, top 没有hlep帮助命令,可以使用man top查看

      root@itlaoxin41 ~]# man top
      [root@itlaoxin41 ~]# man top >> man_top.txt
      [root@itlaoxin41 ~]# vim man_top.txt 

      man的帮助手册一千多行,我们可以放到一个文档中只挑选对自己有用的,后续再去看参数。

      命令格式:

      top [参数】

      常用选项:

      -b:以批处理模式操作;
      -c:显示完整的进程信息;
      -d:屏幕刷新间隔时间;
      -I:忽略失效过程;
      -s:保密模式;
      -S:累积模式;
      -i<时间>:设置间隔时间;
      -u<用户名>:指定用户名;
      -p<进程号>:指定进程;
      -n<次数>:循环显示的次数。

      三. 参考案例

      3.1 显示进程信息

      此时,无需加任何参数 直接执行top即可

      #top

      执行结果如下图:

      linux top命令基本实战

      3.2 显示完整的进程命令

      -c 参数 ,与不使用-c参数做对比,查看后面的command的变化

      #top -c 

      linux top命令基本实战

      如果我们要查看前10行,可以使用

       top -c |head 

      但这么查看不会一直动态显示,会自动退出。

      3.3 以批处理的形式展示

      这里会用到-b的参数

      [root@mufeng ~]# top -b 

      此时需要执行ctrl +c 才能退出。

      3.4 设置信息更新频次

      -n 参数,用来设置信息的更新次数,这里改成5,意味着刷新5次后自己退出。

      # top -n 5

      -d 参数是用来设置秒数,默认为三秒,可以改为5

      top -d 5

      两个参数也可以一起用:

      [root@mufeng ~]# top -d 1 -n 3 

      表示每一秒钟刷新一次,一共刷新3次后退出。

      3.5 显示指定进程号的信息

      我们先查看到进程号,比如 17447

      这时候用 -p 参数后面直接跟17447即可:

      root@mufeng ~]# top -p 17447

      linux top命令基本实战

      3.6 top面板中常用参数

      • 键盘数字1 : 可以查看每个逻辑cpu的状况,再按一次1 就返回top的基本界面

      linux top命令基本实战

      • 字母b 可以打开和关闭正在运行的进程高亮显示
      • 字母y 可以关闭或者打开运行态进程的加亮效果

      下图是敲击b之后的效果,要注意如果没有正在运行的进程,可能没啥效果:

      linux top命令基本实战

      3.7 其他用法

      显示某个进程的信息

      # top -u httpd

      显示线程信息而不是进程的信息

      # top -H

      找出系统中使用CPU最多的进程:

      运行top , 找出使用CPU最多的进程 ,按大写的P,可以按CPU使用率来排序显示

      linux top命令基本实战

      四. top的相关说明

      4.1 交互命令介绍

      在top命令执行过程中可以使用的一些交互命令。这些命令都是单字母的,如果在命令行中使用了-s选项, 其中一些命令可能会被屏蔽。

      参数描述
      h显示帮助画面,给出一些简短的命令总结说明;
      k终止一个进程;
      i忽略闲置和僵死进程,这是一个开关式命令;
      q退出程序;
      r重新安排一个进程的优先级别;
      S切换到累计模式;
      s改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成ms。输入0值则系统将不断刷新,默认值是5s;
      f或者F从当前显示中添加或者删除项目;
      o或者O改变显示项目的顺序;
      l切换显示平均负载和启动时间信息;
      m切换显示内存信息;
      t切换显示进程和CPU状态信息;
      c切换显示命令名称和完整命令行;
      Mjavascript根据驻留内存大小进行排序;
      P根据CPU使用百分比大小进行排序;
      T根据时间/累计时间进行排序;
      w将当前设置写入~/.toprc文件中。

      top命令交互

      1.基础操作

      • 1:显示CPU详细信息,每核显示一行
      • d / s :修改刷新频率,单位为秒
      • h:可显示帮http://www.devze.com助界面
      • n:指定进程列表显示行数,默认为满屏行数
      • q:退出top

      2.面板隐藏显示

      • l:隐藏/显示第1行负载信息;
      • t:隐藏/显示第2~3行CPU信息;
      • m:隐藏/显示第4~5行内存信息;

      3.进程列表排序

      • M:根据驻留内存大小进行排序;
      • P:根据CPU使用百分比大小进行排序;
      • T:根据时间/累计时间进行排序;

      这里使用频率最高的是P、T、M

      因为通常使用top,我们就想看看是哪些进程最耗cpu资源、占用的内存最多;

      注:通过”shift + >”或”shift + <”可以向右或左改变排序列;

      如果只需要查看内存:可用free命令。

      只查看uptime信息(第一行),可用uptime命令;

      详细交互指令:h / ? 可显示帮助界面

      Help for Interactive Commands - procps-ng version 3.3.10
      Window 1:Def: Cumulative mode Off.  System: Delay 3.0 secs; Secure mode Off.
      
        Z,B,E,e   Global: 'Z' colors; 'B' bold; 'E'/'e' summary/task memory scale
        l,t,m     Toggle Summary: 'l' load avg; 't' task/cpu stats; 'm' memory info
        0,1,2,3,I Toggle: '0' zeros; '1/2/3' cpus or numa node views; 'I' Irix mode
        f,F,X     Fields: 'f'/'F' add/remove/order/sort; 'X' increase fixed-width
      
        L,&,<,> . Locate: 'L'/'&' find/again; Move sort column: '<'/'>' left/right
        R,H,V,J . Toggle: 'R' Sort; 'H' Threads; 'V' Forest view; 'J' Num justify
        c,i,S,j . Toggle: 'c' Cmd name/line; 'i' Idle; 'S' Time; 'j' Str justify
        x,y     . Toggle highlights: 'x' sort field; 'y' running tasks
        z,b     . Toggle: 'z' color/mono; 'b' bold/reverse (only if 'x' or 'y')
        u,U,o,O . Filter by: 'u'/'U' effective/any user; 'o'/'O' other criteria
        n,#,^O  . Set: 'n'/'#' max tasks displayed; Show: Ctrl+'O' other filter(s)
        C,...   . Toggle scroll coordinates msg for: up,down,left,right,home,end
      
        k,r       Manipulate tasks: 'k' kill; 'r' renice
        d or s    Set update interval
        W,Y       Write configuration file 'W'; Inspect other output 'Y'
        q         Quit
                ( commands shown with '.' require a visible task display window ) 
      Press 'h' or '?' for help with Windows,
      Type 'q' or <Esc> to continue 

      4.2 top面板每行信息的含义

      linux top命令基本实战

      4.2.1 第一行信息详解

      第一行内容和uptime弹出的信息一样

      参数描述
      09:42:57当前时间
      up 5:38系统运行时间,说明服务器运行了5个小时3编程8分
      3users当前登录用户数
      load average: 0.06, 0.60, 0.48系统负载,即任务队列的平均长度。 三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。

      4.2.2 第二三行信息详解

      此处当有多个CPU时,这些内容可能会超过两行

      信息描述
      Tasks210 total进程总数
      4running正在运行的进程数
      204 sleeping睡眠的进程数
      2 stopped停止的进程数
      0 zombie僵尸进程数
      Cpu(s): 0.0% us系统用户进程使用CPU百分比。
      4.8% sy内核中的进程占用CPU百分比
      0.0% ni用户进程空间内改变过优先级的进程占用CPU百分比
      94.4% id空闲CPU百分比
      0.0% wacpu等待I/0完成的时间总量,也就是等待输入输出的CPU时间百分比
      0.0% hiCPU服务于硬件中断所耗费的时间, 也就是硬中断占的CPU百分比。
      0.0% si软中断消耗时间也就是软中断占的CPU百分比。
      0.0 stst:虚拟机hypervisonr偷去的cpu的时间。比如:物理机已经运行了KVM,XEN虚拟机。KVhttp://www.devze.comM虚拟机也占用物理机的cpu时间

      这里提到了几个概念: 硬中断,软中断

      • 硬中断是由硬件产生的,比如,像磁盘,网卡,键盘,时钟等。每个设备或设备集都有它自己的IRQ(中断请求)。

      • 软中断: 通常,软中断是一些对I/O的请求。

      软中断: 通常,软中断是一些对I/O的请求。

      这些请求会调用内核中可以调度I/O发生的程序。对于某些设备,I/O请求需要被立即处理,而磁盘I/O请求通常可以排队并且可以稍后处理。

      根据I/O模型的不同,进程或许会被挂起直到I/O完成,此时内核调度器就会选择另一个进程去运行。I/O可以在进程之间产生并且调度过程通常和磁盘I/O的方式是相同。

      4.2.3 第四五行信息详解

      第四五行是内存信息

      linux top命令基本实战

      信息描述
      Mem : 1863252 total物理内存总量
      72956 free空闲内存总量
      786372 used,使用的物理内存总量
      1003924 buff/cache用作内核缓存的内存量和free -k是一个意思
      Swap: 2017948k total交换分区总量
      2048756free空闲交换分区总量
      48392 used使用的交换区总量
      6960648 avail Mem缓冲的交换区总量

      这里还要解释一下缓冲(buffer)和缓存(cache)的区别:

      • 缓存(cache)是在读取硬盘中的数据时,把最常用的数据保存在内存的缓存区中,再次读取该数据时,就不去硬盘中读取了,而在缓存中读取。
      • 缓冲(buffer)是在向硬盘写入数据时,先把数据放入缓冲区,然后再一起向硬盘写入,把分散的写操作集中进行,减少磁盘碎片和硬盘的反复寻道,从而提高系统性能。

      简单来说,缓存(cache)是用来加速数据从硬盘中"读取"的,而缓冲(buffer)是用来加速数据"写入"硬盘的。

      4.2.4 第7行进程信息

      linux top命令基本实战

      信息含义
      PID进程ID
      user进程所有者的用户名
      PR优先级(由内核动态调整),用户不能自己调整
      NI进程优先级。 nice值,负值表示高优先级,正值表示低优先级,用户可以自己调整
      VIRT(virtual memory usage)虚拟内存,是进程正在使用的所有内存(ps中标为VSZ)
      RES(resident memory usage)是进程所使用的物理内存。实际实用内存(ps中标为RSS) ,常驻内存
      SHR共享内存
      S进程的状态
      %CPU上次更新到现在的CPU时间占用百分比
      %MEM进程使用的物理内存百分比
      TIME+进程使用的CPU时间总计,单位1/100秒
      COMMAND命令名/命令行

      五. 更强大的工具htop推荐

      htop 是一个 Linux 下的交互式的进程浏览器,可以用来替换Linux下的top命令。不过这个工具再2018年之后就没有在更新过了,目前最新的包是:

      linux top命令基本实战

      与Linux传统的top相比,htop更加人性化。它可让用户交互式操作,支持颜色主题,可横向或纵向滚动浏览进程列表,并支持鼠标操作。

      与top编程相比,htop有以下优点:

      • 可以横向或纵向滚动浏览进程列表,以便看到所有的进程和完整的命令行。
      • 在启动上,比top 更快。
      • 杀进程时不需要输入进程号。
      • htop 支持鼠标操作。

      总结

      top是超级难的命令了,主要原因在于参数太多,需要把每个参数吃透,又得大半天的时间,你学会了吗?

      到此这篇关于linux top命令 实战的文章就介绍到这了,更多相关linux top命令内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

      0

      精彩评论

      暂无评论...
      验证码 换一张
      取 消

      关注公众号