首页 > 代码库 > Linux 进程管理之四大名捕

Linux 进程管理之四大名捕

Linux 进程管理之四大名捕

技术分享技术分享
    提交
    我的留言
      技术分享加载中
      技术分享

      已留言

      一、四大名捕


      四大名捕,最初出现于温瑞安创作的武侠小说,是朝廷中正义力量诸葛小花的四大徒弟,四人各怀绝技,分别是轻功暗器高手“无情”、内功卓越的高手“铁手”、腿功惊人的“追命”和剑法一流的“冷血”。

      本文四大名捕由 linux 命令所出演:

      无情:ps     出演
      铁手:dstat  出演
      追命:top    出演
      冷血:htop   出演

      二、进程相关基础知识

      介绍四大名捕之前先介绍一下进程相关的基础知识,话不多说,看图。

      技术分享

      查看大图

      三、轻功暗器高手“无情” [PS]

      ps:用于显示当前进程的状态(非动态)
      ps [options]:

      选项有三种风格:
      1、UNIX风格,必须在选项前面加“-”
      2、BSD风格,选项前不能加“-”
      3、GNU风格,选项前为两个“-”

      常用组合之一:aux

      • a:所有与终端相关的进程

      • x:所有与终端无关的进程

      • u:以用户为中心组织进程状态信息显示

      技术分享

      CPU%:cpu时间占用比率

      MEM%:内存占用百分比

      VSZ:virtual size虚拟内存集;

      RSS:Resident Size,常驻内存集;

      STAT:

      • R:running 运行

      • S:interruptable sleeping 可中断睡眠

      • D:uninterruptable sleeping 不可中断睡眠

      • T:Stopped 停止

      • Z:zombie 僵死态

      • +:前台进程

      • l:多线程进程

      • N:低优先级进程

      • <:高优先级进程

      • s:session leader  进程领导者

      常用组合之二:-ef

      • -e:显示所有进程

      • -f:显示完整格式的进程信息

      技术分享

      常用组合之三:-eFH

      -F:显示完整格式的进程信息;

      • C: cpu utilization cpu占用百分比

      • PSR:运行于哪颗CPU之上

      -H:以层级结构显示进程的相关信息;

      技术分享

      常用组合之四:-eo, axo

      o  field1, field2,…:自定义要显示的字段列表,以逗号分隔

      常用的field:pid, ni, priority, psr, pcpu, stat, comm, tty, ppid, rtprio

      • pid:进程的pid号

      • ni:nice值

      • priority:优先级

      • psr:运行在那颗cpu

      • pcpu:cpu利用率

      • ppid:父进程的id号

      • rtprio:实时优先级

      四、内功卓越的高手“铁手”[dstat]

      dstat:系统资源统计命令(动态)
      dstat [-afv] [options..] [delay [count]]

      技术分享

      常用选项:

      • -c, –cpu:显示cpu相关信息;

      • -C #,#,…,total:显示第一个cpu,第二个cpu或者总共的

      • -d, –disk:显示磁盘的相关信息

      • -D sda,sdb,…,tobal:显示指定硬盘设备,总空间

      • -g:显示page相关的速率数据;

      • -m:Memory的相关统计数据

      • -n:Interface的相关统计数据;

      • -p:显示process的相关统计数据;

      • -r:显示io请求的相关的统计数据;

      • -s:显示swapped的相关统计数据;

      技术分享

      –tcp:显示tcp套接字

      –udp:显示udp连接

      –raw:显示裸套接字

      –socket:套接字

      –ipc:进程间通信信息

      技术分享

      –top-cpu:显示最占用CPU的进程;

      –top-io:最占用io的进程;

      –top-mem:最占用内存的进程;

      技术分享

      五、腿功惊人的“追命”[top]

      top:列出inux进程
      top为动态显示进程

      技术分享

      top命令个参数具体含义:

      top – 14:58:34 up  5:28,  1 user,  load average: 0.01, 0.02, 0.05

      • 14:58:34:当前时间

      • up  5:28:运行时长

      • 1 user:登录当前系统上的用户数

      • load average: 0.01, 0.02, 0.05:平均负载(等待运行的队列长度的负载)

      Tasks: 353 total,   2 running, 351 sleeping,   0 stopped,   0 zombie

      • Tasks:任务

      • 353 total:一共运行多少进程

      • 2 running:几个处于运行

      • 351 sleeping:多少个睡眠

      • 0 stopped:多少个停止

      • 0 zombie:多少个僵死

      %Cpu(s):  0.0 us,  0.7 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

      • %Cpu:cpu占用百分比

      • 0.0 us:用户空间占用的百分比

      • 0.7 sy:内核空间占用时间的百分比

      • 0.0 ni:对nice调整占用的内存百分比

      • 99.3 id:空闲百分比

      • 0.0 wa(wait):等待IO完成所消耗的百分比

      • 0.0 hi:处理硬件中断所占用的百分比

      • 0.0 si:处理软件中断所占用的百分比

      • 0.0 st:被偷走的百分比(虚拟化程序)

      KiB Mem :  1001332 total,   681052 free,   139844 used,   180436 buff/cache

      • KiB Mem:内存空间占用,以KB为单位:

      • 1001332 total:总内存空间

      • 681052 free:剩余内存空间

      • 139844 used:已用内存空间

      • 180436 buff/cache:用于缓存和缓冲的内存空间

      KiB Swap:  2098172 total,  2098172 free,        0 used.   698100 avail Mem 

      • KiB Swap:swap空间占用,以KB为单位

      • 2098172 total:总空间

      • 2098172 free:剩余空间

      • 0 used:已用空间

      • 698100 avail Mem :有效swap大小

       PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND             

      3077 root      20   0  146276   2256   1420 R  1.7  0.2   0:02.91 top  

      • PID:用户pid

      • USER:用户名称

      • PR:优先级

      • NI:nice值

      • VIRT:virtual size虚拟内存集

      • RES:常驻内存集

      • SHR:共享内存空间

      • S:当前状态

      • %CPU:占据CPU百分比

      • %MEM:占据MEM百分比

      • TIME+:运行时长

      • COMMAND:命令

      top内排序:

      • P:以占据CPU百分比排序

      • M:以占据内存百分比排序

      • T:累积占用CPU时间排序

      首部信息:

      uptime信息:l命令

      # 第一行没有显示

      技术分享

      tasks及cpu信息:t命令

      # 可以禁用显示硬盘及cpu相关消息

      技术分享

      内存信息:m命令

      # 可以将内存使用率用|||显示 或者白空格显示

      技术分享

      退出命令:q

      修改刷新时间间隔:s

      技术分享

      终止指定的进程:k

      技术分享

      选项:

      • -d #:指定刷新时间间隔,默认为3秒;

      • -b:以批次方式显示;

      • -n #:显示多少批次;

      六、剑法一流“冷血”[htop]

      htop:交互式进程查看器
      htop [-dus]

      技术分享

      # htop 是一个非常强大的工具,下面从F1到F10可以看到具体的参数信息。

      # F1 :帮助信息

      技术分享

      选项:

      • -d #:指定延迟时间间隔

      • -u UserName:仅显示指定用户的进程

      • -s COLUME:以指定字段进行排序

      常用子命令:

      • l:显示选定的进程打开的文件列表

      • s:跟踪选定的进程的系统调用

      • t:以层级关系显示各进程状态

      • a:将选定的进程绑定至某指定的CPU核心

      # 此处可以添加指定项到显示屏幕上面,显示方式可以是[Bar] [Text] [Graph] [LED]

      技术分享


      精选留言
        该文章作者已设置需关注才可以留言
        技术分享加载中
        以上留言由公众号筛选后显示
        技术分享

        微信扫一扫
        关注该公众号

        <link rel="stylesheet" type="text/css" href="http://www.mamicode.com/43b0b2f3-a504-4721-aec4-9208b521833e_files/page_mp_article_improve_combo2d1390.css">

        来自为知笔记(Wiz)


        Linux 进程管理之四大名捕