• linux分析工具之top命令详解


         Linux系统可以通过top命令查看系统的CPU、内存、运行时间、交换分区、执行的线程等信息。通过top命令可以有效的发现系统的缺陷出在哪里。是内存不够、CPU处理能力不够、IO读写过高。

    一、top选项

    使用语法:top -hv | -abcHimMsS -d delay -n iterations -p pid [, pid ...]

    -a:根据使用的内存排序
    -d:number代表秒数,表示top命令显示的页面更新一次的间隔。默认是5秒。 
    -b:以批次的方式执行top。 
    -n:与-b配合使用,表示需要进行几次top命令的输出结果。 
    -p:指定特定的pid进程号进行观察。
    -c:显示完整的治命令;
    -I:忽略失效过程;
    -s:保密模式;
    -S:累积模式;
    -i<时间>:设置间隔时间;
    -u<用户名>:指定用户名

    二、top命令页面详解

    直接输入top命令得到如下结果,如图所示:

    2.1、系统时间相关

    依次显示了系统当前时间 、系统到目前为止已运行的时间、当前登录系统的用户数量

    2.2、平均负载

    系统负载(任务队列的平均长度)三个值分别为1分钟、5分钟、15分钟前到现在的平均值(根据cpu数量去判断。如果平均负载始终在1.2一下,而你有2颗cup的机器。那么基本不会出现cpu不够用的情况。也就是Load平均要小于Cpu的数量,一般性负载超过cpu的个数的5倍则表示已经超负载了)

     2.3、进程相关参数

    Tasks: 288 total(总进程数),   2 running(运行中的进程数), 286 sleeping(挂起的进程数),   0 stopped(停止的进程数),   0 zombie(僵尸进程数)

     2.4、cpu相关参数

    Cpu(s): 32.0%us(用户使用cpu占比),  2.0%sy(系统使用cpu占比),  0.0%ni(用户空间内改变过优先级的进程占用CPU百分比), 65.3%id(空闲cpu占比),  0.1%wa(等待输入输出CPU时间百分比),  0.1%hi(CPU服务于硬件中断所耗费的时间总额),  0.5%si(CPU服务软中断所耗费的时间总额),  0.0%st(Steal Time)

     2.5、内存相关参数

    Mem:  16466536k total(物理内存总量),  7943976k used(已使用的物理内存),  8522560k free(剩余的物理内存),   404760k buffers(缓冲区内存)

     2.6、交换分区相关参数

    Swap:  4194300k total(交换分区总量),        0k used(已使用交换分区),  4194300k free(交换分区剩余量),  2228400k cached(缓冲的交换分区总量)

     2.7、具体进程相关参数

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

     其他未显示的描述:

    PPID    #父进程id
    UID     #进程所有者的用户id
    USER    #进程所有者的用户名
    GROUP   #进程所有者的组名
    TTY     #启动进程的终端名。不是从终端启动的进程则显示为 ?
    P       #最后使用的CPU,仅在多CPU环境下有意义
    TIME    #进程使用的CPU时间总计,单位秒
    SWAP    #进程使用的虚拟内存中,被换出的大小,单位kb
    CODE    #可执行代码占用的物理内存大小,单位kb
    DATA    #可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
    nFLT    #页面错误次数
    nDRT    #最后一次写入到现在,被修改过的页面数。
    WCHAN   #若该进程在睡眠,则显示睡眠中的系统函数名
    Flags   #任务标志

    三、top命令交互详解

    当我们使用top之后,可以直接输入h或者?查看交换命令的帮助:

    Help for Interactive Commands - procps version 3.2.8
    Window 1:Def: Cumulative mode Off.  System: Delay 3.0 secs; Secure mode Off.
    
      Z,B       Global: 'Z' change color mappings; 'B' disable/enable bold  #Z改变颜色,B加粗
      l,t,m     Toggle Summaries: 'l' load avg; 't' task/cpu stats; 'm' mem info #t:显示和隐藏任务/cpu信息;m:显示和隐藏内存信息;l显示和隐藏平均负载信息
      1,I       Toggle SMP view: '1' single/separate states; 'I' Irix/Solaris mode #1:监控每个逻辑CPU的状况
      #f:进入字段显示配置模式,可增加或者移除显示字段,按相应的字母新增或去除;输入相应的字母,按enter确认
    #o:进入字段顺序设置模式,可配置显示位置顺序,按相应的字母往下移动,按“shift+相应的字母”往上移动 f,o . Fields
    /Columns: 'f' add or remove; 'o' change display order F or O . Select sort field #F进入字段排序配置模式,可设置排序的字段 ; O设置默认的排序字段 <,> . Move sort field: '<' next col left; '>' next col right R,H . Toggle: 'R' normal/reverse sort; 'H' show threads #R设置排序为正序、反序 c,i,S . Toggle: 'c' cmd name/line; 'i' idle tasks; 'S' cumulative time #i只显示正在运行的进程;c:切换显示命令名称和完整命令行 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 . Show specific user only #输入用户,显示用户的任务 n or # . Set maximum tasks displayed k,r Manipulate tasks: 'k' kill; 'r' renice d or s Set update interval #s设置刷新的时间--------常用 W Write configuration file q Quit ( commands shown with '.' require a visible task display window ) Press 'h' or '?' for help with Windows, any other key to continue

    M:根据驻留内存大小进行排序。-------------常用

    P:根据CPU使用百分比大小进行排序。-----------常用

    交互实践:

    使用1,查看每个cpu的情况

     使用f命令调出Flags列:f命令交互,然后输入z,enter确认就好

     

     然后使用M,更具内存排序(降序)

        top命令默认值显示前面一部分的进程,若是想要查看全部的进程信息,则需要使用命令:top -ab -n 1,在这个命令中,a表示按内存倒序排列,b表示将所有列输出,n表示只执行一次

     更多linux文章请见:linux&shell学习系列

    参考:

    https://www.cnblogs.com/fuqu/p/10230385.html#_label2

  • 相关阅读:
    CKEditor配置
    Asp.net中防止用户多次登录的方法【转】
    Android sharedUserId研究记录
    Android Wifi模块学习
    你应该知道的asp.net 之 服务器端包括指令
    钻牛角尖之try return finally
    .NET集合总结
    web debugger fiddler 使用小结
    钻牛角尖之Request.Cookies与Response.Cookies
    speeding up your web site 前端性能优化规则(一)
  • 原文地址:https://www.cnblogs.com/zsql/p/11637535.html
Copyright © 2020-2023  润新知