Linux top命令:用于实时显示 process 的动态

语法

    top [-][d num] [q] [c] [S] [s] [I] [n] [b] [p] [u]

参数详解

    top - 15:39:17 up 225 days,  3:33,  1 user,  load average: 11.972, 18.86, 20.29

    Tasks: 617 total,   2 running,  613 sleeping,   1 stopped,   1 zombie

    Cpu(s): 14.6%us,  4.7%sy,  1.5%ni, 78.1%id,  0.0%wa,  0.0%hi,  1.0%si,  0.0%st

    Mem:  196317064k total, 83591344k used, 113725720k free,  1608152k buffers

    Swap:        0k total,        0k used,        0k free, 19245824k cached

前5行:系统整体的统计信息

第一行是任务队列信息,同 uptime 命令的执行结果:

        15:39:17—>系统当前时间

        up 225 days—>系统运行天数,格式为时:分

        3:33—>系统运行时间,格式为时:分

        1 user—> 当前登录用户数

        load average: 11.972, 18.86, 20.29—>系统负载,即任务队列的平均长度,三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。

        平均负载的值越小代表系统压力越小,越大则代表系统压力越大。通常,我们会以最后一个数值,也就是15分钟内的平均负载作为参考来评估系统的负载情况。

        对于只有单核cpu的系统,1.0是该系统所能承受负荷的边界值,大于1.0则有处理需要等待。一个单核cpu的系统,平均负载的合适值是0.7以下。如果负载长期徘徊在1.0,则需要考虑马上处理了。超过1.0的负载,可能会带来非常严重的后果。多核cpu的系统是在前述值的基础上乘以cpu内核的个数。如对于多核cpu的系统,有N个核则所能承受的边界值为N.0。

        可以使用如下命令来查看每个处理器的信息:cat/proc/cpuinfo

        如果只想计算有多少个cpu内核,可以使用如下命令:cat /proc/cpuinfo |grep'model name'| wc -l

第二行是进程信息:

        617 total—>进程总数

        2 running—>正在运行的进程数

        613 sleeping—>睡眠的进程数

        1 stopped—>停止的进程数

        1 zombie—>僵尸进程数

第三行是CPU信息:

        14.6%us—>用户空间占用CPU百分比

        4.7%sy—>内核空间占用CPU百分比

        1.5%ni—>用户进程空间内改变过优先级的进程占用CPU百分比

        78.1%id—>空闲CPU百分比

        0.0%wa—>等待输入输出的CPU时间百分比

        0.0%hi—>硬中断(Hardware IRQ)占用CPU的百分比

        1.0%si—>软中断(Software Interrupts)占用CPU的百分比

        0.0%st—>实时

第四行是MEM信息:

        196317064k total—>物理内存总量

        83591344k used—>使用的物理内存总量,指的是现在系统内核控制的内存数

        113725720k free—>空闲内存总量,是内核还未纳入其管控范围的数量。

        1608152k buffers—>用作内核缓存的内存量

        纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交还到free中去,因此在linux上free内存会越来越少,但不用为此担心。 如果出于习惯去计算可用内存数,有个近似的计算公式:第四行的free + 第四行的buffers + 第五行的cached,按这个公式此台服务器的可用内存:113725720k + 1608152k + 19245824k = 127GB左右。 

第五行是交换区信息:

        0k total—>交换区总量

        0k used—>使用的交换区总量,对于内存监控,在top里需要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,说明真正的内存不够用了

        0k free—>空闲交换区总量

        19245824k cached—>缓存的交换区总量。内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,该数值即为这些内容已存在于内存中的交换区的大小,相应的内存再次被换出时可不必再对交换区写入。

进程信息区

        序号            列名                含义

        a                 PID                 进程id

        b                PPID               父进程id

        c                RUSER         Real user name

        d                UID                 进程所有者的用户id

        e                USER            进程所有者的用户名

        f                GROUP           进程所有者的组名

        g                TTY                 启动进程的终端名。不是从终端启动的进程则显示为 ?

        h                PR                   优先级

        i                NI                     nice值。负值表示高优先级,正值表示低优先级

        j                P                      最后使用的CPU,仅在多CPU环境下有意义

        k                %CPU             上次更新到现在的CPU时间占用百分比

        l                TIME                进程使用的CPU时间总计,单位秒

        m              TIME+             进程使用的CPU时间总计,单位1/100秒

        n              %MEM            进程使用的物理内存百分比

        o              VIRT                进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

        p              SWAP            进程使用的虚拟内存中,被换出的大小,单位kb。

        q              RES                进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

        r              CODE            可执行代码占用的物理内存大小,单位kb

        s              DATA               可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb

        t              SHR                共享内存大小,单位kb

        u              nFLT                页面错误次数

        v              nDRT               最后一次写入到现在,被修改过的页面数。

        w              S                      进程状态。D=不可中断的睡眠状态;R=运行;S=睡眠;T=跟踪/停止;Z=僵尸进程

        x              COMMAND      命令名/命令行

        y              WCHAN           若该进程在睡眠,则显示睡眠中的系统函数名

        z              Flags                任务标志,参考 sched.h

参数说明

        d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s

        q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行

        c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称

        S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来

        s : 安全模式,将交谈式指令取消, 避免潜在的危机

        i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程

        n : 更新的次数,完成后将会退出 top

        b : 批次档模式,搭配 “n” 参数一起使用,可以用来将 top 的结果输出到档案内        

        u :指定用户名

        p :指定进程

常用参数:

        top         #显示系统进程信息

        top -b      #以批处理模式显示程序信息

        top -S      #以累积模式显示程序信息

        top -n 2   #设置信息更新次数,表示更新2次后终止更新显示

        top -d -3   #设置信息更新时间,表示更新周期为3秒

        top -p 1138  #显示进程号为1138的进程信息,CPU、内存占用率等

        top -Hp 1138  #该进程下的各个线程运行情况

top交互命令

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

        h:显示帮助画面,给出一些简短的命令总结说明;

        k:终止一个进程;

        i:忽略闲置和僵死进程,这是一个开关式命令;

        q:退出程序;

        r:重新安排一个进程的优先级别;

        S:切换到累计模式;

        s:改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成ms。输入0值则系统将不断刷新,默认值是5s;

        f/F:从当前显示中添加或者删除项目;

        o/O:改变显示项目的顺序;

        l:切换显示平均负载和启动时间信息;

        m:切换显示内存信息;

        t:切换显示进程和CPU状态信息;

        c:切换显示命令名称和完整命令行;

        M:根据驻留内存大小进行排序;

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

        T:根据时间/累计时间进行排序;

        w:将当前设置写入~/.toprc文件中。

其他

1、在top界面按一下1,可以清晰得看到每个cpu的运行状态

        Cpu(us)表示的是所有用户进程占用整个cpu的平均值,由于每个核心占用的百分比不同,所以按平均值来算比较有参考意义

        %CPU显示的是进程占用一个核的百分比,而不是整个cpu(12核)的百分比,有时候可能大于100,那是因为该进程启用了多线程占用了多个核心,所以有时候我们看该值得时候会超过100%,但不会超过总核数*100

2、高亮显示当前运行进程 

敲击键盘“b”(打开/关闭加亮效果),top的视图变化如下: 

我们发现进程id为50791的“top”进程被加亮了,top进程就是视图第二行显示的唯一的运行态(runing)的那个进程,可以通过敲击'y'或'b'键关闭或打开运行态进程的加亮效果。

3、进程字段排序 

默认进入top时,各进程是按照CPU的占用量来排序的,在下图中进程ID为2017的java进程排在第一(cpu占用277.4%),进程ID为6101的java进程排在第二(cpu占用250.2%)。 

4、通过”shift + >”或”shift + <”可以向右或左改变排序列 

下图是按一次”shift + >”的效果图,视图现在已经按照%MEM来排序。 

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,928评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,192评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,468评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,186评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,295评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,374评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,403评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,186评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,610评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,906评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,075评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,755评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,393评论 3 320
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,079评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,313评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,934评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,963评论 2 351