进程管理工具:ps,top,htop,dstat

进程列表查看,系统资源使用情况查看,比如CPU占用情况,内存使用情况,网络IO,硬盘IO等等。本文介绍的几款工具帮您实现。

进程是指运行中的程序的一个副本,进程的有关信息映射在/proc/#下,ps等工具通过加工/proc/下文件而显示出进程列表。

linux内核属于抢占式多任务式,内核将CPU处理时间按时间片分配给各个进程,这里有一个优先级的问题,优先级越高,最先被处理。

进程有140个队列,0~139。

1-99属于实时优先级,数字越大优先级越高;

100-139属于静态优先级,数字越小优先级越高,对应着nice值-19~20,可以调整nice值来改变进程优先级。

再来简单介绍进程状态:

1、运行态:running,正在运行的进程,或是等待运行在CPU队列上。

2、睡眠态:分为两种

     (1)可中断:Interruptable,接受控制信号

      (2)不可中断:Uninterruptable,不接受控制信号

3、停止态:stopped,暂停与内存中,除非手动调度。

4、僵死态:zombie,执行完毕的进程,等待释放资源。

一、ps命令

ps – 报告当前进程的快照。

ps命令接受3种风格的选项指定:

    1、BSD风格,选项不带“-”

    2、UNIX风格,选项带“-”

    3、GNU风格,长选项“–”

1、BSD风格

选项

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

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

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

    o:指定显示字段

        常用字段:pid,ni,psr,pcpu,pmem,priority,stat,comm

常用组合ps aux ,ps axo user,pid,comm

blob.png

对第一行字段中

VSZ:占用的虚拟内存集大小

RSS:Resident Size,常驻内存集大小

STAT:进程状态

    R:runing

    S:interruptable sleeping

    D:uninterruptable sleeping

    T:stopped

    Z:zombie

        +:表示前台进程

        s:session leader,拥有子进程

        l:多线程的进程

        N:低优先级进程

        <:高优先级进程

        L:在内存中有锁定的页

2、UNIX风格

选项

    -e:显示所有进程

    -f:显示完整格式

    -F:显示更多字段

    -o:自定义字段显示

    -H:显示层级结构

常用组合:ps -ef,ps -efH,ps -eo pid,pcpu,comm

blob.png

C:cpu占用百分比

二、top命令

top – 显示linux任务列表

动态方式提供运行系统视图,显示汇总信息及进程列表。

常用选项

    -d # 指定刷新间隔时间

    -b  以批次显示,用于输出

    -n # 显示多少批次

    -M/G 指定内存单位,默认为KB

$ top -M

blob.png

load average:过去1分钟,5分钟,15分钟的平均负载,等待CPU队列长度。

Cpu一行:

    us:用户空间

    sy:系统空间

    ni:nice进程

    id:空闲进程

    wa:等待io进程

    hi:硬中断

    si:软中断

    st:steal,虚拟化占用的百分比

进程列表字段

    VIRT:Virtual Image (kb),虚拟内存集

    RES:Resident size (kb),常驻内存集

    SHR:Shared Mem size (kb),共享内存集

交互按钮

1)排序

    P:按占用cpu百分比排序

    M:按占用内存排序

    T:按累积占用cpu时间排序

    R:反转排序次序

    <,>:移动排序的字段

2)修改刷新时间:s

3)停止进程:k

4)退出:q

三、htop命令

htop类似与top工具,但是支持垂直和水平滚动,这样可以看到所有进程的信息。

另外使用htop需要从epel源安装。

用法:htop [-dChusv]

-d 刷新间隔,单位十分之一秒

-p pid… 查看指定pid列表

-u 查看指定用户的进程列表

blob.png

快捷键F1~F10,帮助,设置,查询,过滤,树形结构,排序选择,nice值更改,停止进程,退出。

几项特别功能快捷键:

l:列出进程打开的文件列表

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

t:层级结构关系显示

a:绑定指定CPU

四、dstat命令

dstat – 用来生成系统资源统计数据的多功能工具,十分强大。

dstat可以取代vmstat,iostat,ifstat工具。dstat克服了一些老工具的短板问题,而且新加很多功能。

另外需要从epel源安装。

用法: dstat [-afv] [options..] [delay [count]]

选项:

    -c 显示cpu统计

    -C #,# 显示指定cpu统计。以下大写选项均类似。

    -d 显示磁盘统计

    -D sda

    -n 显示网络统计(接收,发送)

    -N eth0

    -m 显示内存统计

    -s 显示交互分区统计

    -r 显示IO请求统计

    -g 显示page相关速率统计(page in, page out)

    -p 显示进程相关统计(runnable, uninterruptible, new)

    -y 显示系统统计(interrupts, context switches)

默认选项为-cdngy

$ dstat

blob.png

$ dstat -v   #equals -pmgdsc -D total

blob.png

长选项:

    –fs  显示文件系统统计(open files, inodes)

    –tcp  显示tcp统计(listen, established, syn, time_wait, close)

    –udp  显示udp统计

    –raw  显示裸套接字统计

    –socket 显示套接字统计(total, tcp, udp, raw, ip-fragments)

blob.png

插件:

dstat支持用户开发插件加入到dstat中,下面介绍一些实用插件

    –freespace  文件系统使用量

    –top-bio  最耗费块设备IO的进程

    –top-io  最耗费IO的进程

    –top-cpu  最耗费cpu的进程

    –top-cputime  占用cpu时间最多的进程

    –top-mem  最耗费内存的进程

    –top-latency  延迟最大的进程 

$ dstat --top-{io,bio,cpu,cputime,mem,latency}

blob.png

原创文章,作者:cutemsyu,如若转载,请注明出处:http://www.178linux.com/47395