进程管理工具: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

(0)
cutemsyucutemsyu
上一篇 2016-09-22
下一篇 2016-09-22

相关推荐

  • web service之http协议

    一.概述 1.web应用的核心是http协议(HyperText Transfer Protocol),http协议的由两部分组成,客户端程序和服务器端程序,通过交换http报文进行会话。web页面则是由对象(也叫资源)组成的,对象直白的说就是一个个的文件,而这些对象可以通过URL引用,URL由两部分组成,存放对象的主机名和对象的文件路径,而这些对象都存储在…

    Linux干货 2016-11-03
  • N26-第五周作业

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行; grep ‘^[[:space:]]\+’ /boot/grub2/grub.cfg 2、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行; grep ‘^#[[:space:]]\+’ /etc/rc.d/rc.…

    Linux干货 2017-03-06
  • 软件包管理

      软件运行环境       API:Application Programming Interface         POSIX :Portable OS      码程序源代码 –>预处理 –> 译…

    Linux干货 2016-08-29
  • 2017-10-4Linux基础知识(3)

    在上一章中讲到了操作系统的历史的发展以及Linux的如何诞生,在1991年的8月份,创始人Linus宣布成立Linux的,Larry Wall开发diff和patch打补丁的命令程序使得Linux可以在安全性方面有很大的提升。

    Linux干货 2017-10-05
  • mount挂载

    mount 1 挂载mount                                               &nb…

    Linux干货 2017-04-24
  • 数据结构-栈和队列

    1.栈 1.1 栈的定义 栈是一种特殊的线性表。其特殊性在于限定插入和删除数据元素的操作只能在线性表的一端进行。如下所示: 结论:后进先出(Last In First Out),简称为LIFO线性表。 栈的基本运算有六种: 构造空栈:InitStack(S)、 判栈空: StackEmpty(S)、 判栈满: StackFull(S)、 …

    Linux干货 2015-04-07