今天我们来了解一下linux系统上进程的查看及管理的工具: htop、top、dstat、ps 它们可以帮助我们快速的去查找和定位问题,并可以对当前系统的运行状况及使情况进行实时打印;

接着我们说一下什么是进程, 在系统启动后全产生许多进程,进程就是运行中的程序的一个副本,进程是有生命周期的,一般会随着自身所在bash的关闭而关闭,所有进程都是在系统启动后由/sbin/init来创建的,而进程之间存在父子关系,所有的子进程都是由其父进程创建的;

 进程与进程间存在优先级:1-139 

                      1-99:实时优先级             (数字越小,优先级越高)

              100-139:静态优先级       

进程类型:
            守护进程: 在系统引导过程中启动的进程,跟终端无关的进程;
            前台进程:跟终端相关,通过终端启动的进程
                注意:也可把在前台启动的进程送往后台,以守护模式运行;

        进程状态:
            运行态:running
            就绪态:ready
            睡眠态:
                可中断:interruptable
                不可中断:uninterruptable
            停止态:暂停于内存中,但不会被调度,除非手动启动之;stopped
            僵死态:zombie

接着我们说一下这几个工具

 ps [options]:

             选项有三种风格:UNIX、BSD、GNU

选项:

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

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

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

常用组全之一:aux

wKioL1chem3AHpPOAACUEW2bltc185.png

                            VSZ:虚拟内存集;(占用的虚拟内存)
                            RSS:Resident Size,常驻内存集;

                            CPU%:cpu时间占用比率

                            MEM%:内存占用百分比

                            STAT:
                                R:running(运行态)
                                S:interruptable sleeping(可中断睡眠)
                                D:uninterruptable sleeping(不可中断睡眠)
                                T:Stopped(停止态)
                                Z:zombie(僵死态)
                                
                                +:前台进程
                                l:多线程进程
                                N:低优先级进程
                                <:高优先级进程
                                s:session leader (进程领导者)

常用组合之二:-ef

                -e:显示所有进程

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

wKiom1cheyiitHEFAABzpgIb52c336.png

常用组合之三:-eFH

             -F:显示完整格式的进程信息;
                     C: cpu utilization
                     PSR:运行于哪颗CPU之上
             -H:以层级结构显示进程的相关信息

常用组合之四:-eo, axo
          o  field1, field2,...:自定义要显示的字段列表,以逗号分隔;
             常用的field:pid, ni, pri, psr, pcpu, stat, comm, tty, ppid, rtprio
                   ni:nice值;
                   priority:priority, 优先级;
                   rtprio:real time priority,实时优先级;

top命令:
                - display Linux processes
                
                排序:
                    P:以占据CPU百分比排序;
                    M:以占据内存百分比排序;
                    T:累积占用CPU时间排序;
                    
                首部信息:
                    uptime信息:l命令
                    tasks及cpu信息:t命令
                    内存信息:m命令
                    
                退出命令:q
                修改刷新时间间隔:s
                终止指定的进程:k
                
                选项:
                    -d #:指定刷新时间间隔,默认为3秒;
                    -b:以批次方式显示;
                    -n #:显示多少批次;

wKiom1chfcjCZsnMAACqAb3OeQE860.png

第一行:系统时间、运行时长、登录用户数、平均负载

第二行:总任务数、运行数、睡眠数、停止数、僵死数

第三行:CPU: us:用户空间、sy:内核空间、ni:Nice值额外占用时间、id:空闲时间、wa:等待时间、hi:硬中断消耗百分比、si:软中断消耗百分比、st:虚拟化分走的时间比

第四行:内存总数、使用的、空闲的、缓冲的

第五行:交换分区总数、使用的、空闲的、缓存的

进程管理类命令:
    
 htop命令:
         选项:
              -d #:指定延迟时间间隔;
              -u UserName:仅显示指定用户的进程;
              -s COLUME:以指定字段进行排序;
         子命令:
              l:显示选定的进程打开的文件列表;
              s:跟踪选定的进程的系统调用;
              t:以层级关系显示各进程状态;
              a:将选定的进程绑定至某指定的CPU核心;

wKiom1chgV6zXzQsAADSDCE2xZY121.png

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

    F1的帮助信息

wKiom1chggih07dwAADfY0mzzLI998.png

也可在首页按F2进行CPU、MEM、SWAP的显示效果进行设置:

wKiom1chg82R2nMjAAB_mskpVCc452.png

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

wKioL1chhheAGwcXAAA6dlwi9Hw355.png

常用选项:
                -c, --cpu:显示cpu相关信息;
                    -C #,#,...,total
                -d, --disk:显示磁盘的相关信息
                    -D sda,sdb,...,tobal
                -g:显示page相关的速率数据;
                -m:Memory的相关统计数据
                -n:Interface的相关统计数据;
                -p:显示process的相关统计数据;
                -r:显示io请求的相关的统计数据;
                -s:显示swapped的相关统计数据;

wKiom1chhffS6YcJAABLqZn2u7I007.png

            --tcp:显示tcp套接字

    --udp:显示udp连接

    --raw:显示裸套接字

    --socket:套接字

    --ipc:进程间通信信息

wKiom1chhs6BxFUdAAAlwXCoZ3k662.png

                --top-cpu:显示最占用CPU的进程;
                --top-io:最占用io的进程;
                --top-mem:最占用内存的进程;

wKiom1chh_CDyuceAAAvqM2yo00478.png

这些就是进程的查看及管理工具基本用法,不喜勿喷。