友情提醒:文件涉及到的实验平台为vmware workstation 10 + Centos 6.6 X86_64,所述命令请谨慎使用。

    Centos linux中自带了很多进程查看管理工具,诸如:ps ,top,vmstat除了这些之外还有很多提供类似功能的工具程序,这其中有三款高大上的工具 htop/glances/dstat。今天就来认识一下他们。

    工具一,htop:令人惊艳的类top工具

    htop是款类似于top的工具,但是htop提供的功能却是top望尘莫及。

1.安装

      htop非系统光盘中自带的程序,请使用epel提供的yum源自行进行安装,若你不会使用yum,请在老衲的文章中挑选关于yum的学习。若不知道epel地址的请自行问度娘。


2.界面说明

   进程管理工具htop/glances/dstat的使用_dstat  

A区域使用彩色柱状结构分别显示CPU,Memory和Swap的使用情况。在同一个项目内不同的颜色柱表示不同的内容,各色柱体的多少分别表示占用的百分比。颜色对比见下图。

    进程管理工具htop/glances/dstat的使用_glances_02

B区域是个统计信息区域。显示任务负载和开机时间。

C区域显示的是进程的信息。支持四个方向键和鼠标的直接操作。

    PID:进程ID

    USER:进程所有者的用户名

    PR:进程的优先级别

    NI:进程的优先级别数值

    VIRT:进程占用的虚拟内存值

    RES:进程占用的物理内存值

    SHR:进程使用的共享内存值

    S:进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数

    CPU%:该进程占用的CPU使用率

    MEM%:该进程占用的物理内存和总内存的百分比

    TIME+:该进程启动后占用的总的CPU时间

    COMMAND:进程启动的启动命令名称


D区域是个快捷键提示区:


F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
help
setup
search
filter
tree
sortby
nice-
nice+
kill
quit
提供帮助信息
定义个性话的htop展示界面
定义关键字,在现有进程中搜索包含关键字的进程
定义关键字,在现有进程中过滤含有关键字的进程,并在C区域展示
以树状形式显示C区域进程关系
定义一个标准,C区域展示的进程安装该标准进行排序展示
实现对进程nice值的减小,这个只有root用户可以操作
实现对进程nice值的增加
对C区域中的进程条目传输SINGLE信号
退出htop界面


3.快捷键说明与实践

   1)打开htop界面:

[lijun@Test01 ~]$ which htop
/usr/bin/htop      ------------------>可以看到htop可被超级用户root和普通用户使用
[lijun@Test01 ~]$ htop   ---------->可以这样打开htop工具,当然也同下面提供的选项一起使用

[lijun@Test01 ~]$ htop  -d # 

                     --->#为数字,-d 可以指定htop界面中两次刷新时间间隔时长,默认1/10秒

[lijun@Test01 ~]$ htop  -u usename

                                  ---->在htop界面中只显示进程属主为 username 的进程 

   2)htop界面中快捷键使用展示

F1:只需在htop界面中按下F1键就可呼出帮助信息

进程管理工具htop/glances/dstat的使用_glances_03


F2:只需在htop界面中按F2就可进入定制个性话htop界面,包括显示色彩,显示项目内容等。

    左侧setup是可定制的项目,右侧为项目中的内容。

    使用上下左右方向键可以选择,定制完后按F10退出定制界面。

进程管理工具htop/glances/dstat的使用_dstat_04

F3:只需在htop界面中按F3就可进入搜索界面,输入要搜索的关键字,即可在C区域中定位包含关键字的进程条目,被选中的条目会变色。ESC按键退出到正常htop界面。

进程管理工具htop/glances/dstat的使用_系统性能_05

       在这个例子中看到,输入关键字vim,那么包好vim关键字的进程条目自动被选中并变色显示。


F4:只需在htop界面中按F4就可进入定制过滤界面,输入关键字,htop为依照输入的关键字,在C区域中显示包含关键字的进程条目。ESC*2次或者回车键退出该界面。

进程管理工具htop/glances/dstat的使用_htop_06


F5:只需在htop界面中按F5,可实现在C区域中以树状形式显示进程间的关系。

进程管理工具htop/glances/dstat的使用_系统性能_07


F6:在C区域中进程显示时,默认按照CPU%列的值为标准进行排序的,想改变这种排序方式,定义一个新的参考列值,只需在htop界面中按F6进入。左侧为排序标准,上下方向键选择,选中后按enter键即可。

进程管理工具htop/glances/dstat的使用_系统性能_08


F7:调小进程nice值的,这个只有root用户可用,建议配合F4一起使用。

先使用F4功能选出要调值的进程

进程管理工具htop/glances/dstat的使用_htop_09

按Enter键,按F7给选中的进程调小nice值,按一次F7 该进程nice值减小1,比较下图和上图nice值的差别

进程管理工具htop/glances/dstat的使用_glances_10


F8:调大进程的nice值的,这个同F7使用类似,只是不限制用户身份,当然“自家的孩子自己可以打,打别人家的。。。除了你是root”


F9:向进程传递Single信号的,建议同F4过滤一起使用。

先使用F4的功能选出实施动作的进程

进程管理工具htop/glances/dstat的使用_系统性能_11


进程管理工具htop/glances/dstat的使用_系统性能_12


按Enter键,再按F9进入信号选择界面,左侧为信号,按上下方向键选择。选择后按Enter间发送信号,按ESC键取消发送。

进程管理工具htop/glances/dstat的使用_glances_13


再观察被发送15 SIGTERM信号后 vim进程的变化,显示vim进程被正常解释。

进程管理工具htop/glances/dstat的使用_dstat_14

    这就是htop,一款人性化的类top工具,超赞!!!,更多使用帮助,请自行man htop查阅。

    

    工具二 glance:系统监控工具中的"瑞士***"

    glance 是款开源的命令行系统监控工具。使用python语言开发。之所以称之为"瑞士***",是因为如下原因:

      (1)囊括系统监控对象广:

          能够对:CPU,内存,磁盘I/O,网卡网络流量,系统负载,文件系统等提供监控。

      (2)监控界面中显示对象可自定义,可对监控对象显示值自定义。

      (3)对现实终端屏幕没有特殊要求。

      (4)支持C/S工作模式,1V1监控远程主机数据。

      (5)可将监控数据输出至文件,且可自定义文件的格式为html或者cvs。

    1.工具的安装:

    glance非系统光盘中自带的程序,请使用epel提供的yum源自行进行安装,若你不会使用yum,请在老衲的文章中挑选关于yum的学习。epel地址的请自行问度娘。

    2.监控界面的定义:

     先看下默认的glance的界面:

进程管理工具htop/glances/dstat的使用_htop_15


    要实施监控界面中监控对象的定义有2种方式:1.命令行定义 2.交换界面中快捷键定义。

  2.1)命令行中定义监控界面显示的监控对象:

#glance [ -dmnr ]

   -d     Disable disk I/O module      不显示磁盘I/O监控

   -m     Disable mount module         不显示已挂载的磁盘分区使用情况
   -n     Disable network module       不显示网卡流量监控

   -r     Disable process list (for low CPU consumption)  不现实进程监控

 

     2.2)交换界面中通过快捷键定义显示的监控对象

#glance 开启监控界面后按键盘上对应的快捷键,这些快捷键有:

     d      Show/hide disk I/O stats     开启/关闭磁盘I/O监控信息
     f      Show/hide file system stats  开启/关闭已挂载的磁盘分区使用情况   

     h      Show/hide the help screen    开启/关闭帮助界面      
     n      Show/hide network stats      开启/关闭网卡流量监控



    3 定义监控对象监控值的表现方式:

    3.1)命令行可用参数定义:

#glance [ -b,-t sec,-1]

    -b     Display network rate in Byte per second (default: bit per second)

           以字节/秒为单位展示网络网卡流量,默认单位:位/秒

    -t sec:Set refresh time in seconds (default: 3 sec)

            设定刷新数值间隔,默认每3秒刷新一次。

   -1:    Start Glances in per-CPU mode

           数字1,展示cpu情况时以每cpu位单位进行展示,而不是cpu汇总情况

     

      3.2)交换界面中通过快捷键定义

#glance 开启监控界面后按键盘上对应的快捷键,这些快捷键有:

       a  Sort process list automatically  
       b  Switch between bit/s or Byte/s for network I/O

          在位/秒和字节/秒间为单位间切换网卡I/O统计数据
       c  Sort processes by CPU usage

          以CPU占用值为依据对进程排序
       i  Sort processes by I/O rate

          以进程I/O值为依据对进程排序

       m  Sort processes by MEM usage

          以内存使用量为依据对进程进行排序
       p  Sort processes by name

          以进程名称对进程进行排序
       t  View network I/O as combination

          显示网卡I/O值时,以进出之和形式展示
       u  View cumulative network I/O

          显示网卡I/O值时,以刷新间隔该值累加形式展示
       1  Switch between global CPU and per-CPU stats     

          展示cpu使用情况时,在每cpu和cpu使用汇总间切换


    4 定义监控数据的输出

#glances   -f /path/to/file   -o {html|cvs}

        -f  /path/to/file:定义监控数据输出文件

        -o {html|cvs}:指定输出的格式

 

     5 以C/S模式运行glances

服务器模式:被监控的服务器使用

#glances -s [-B bind] [-p port]

客户机模式:监控主机使用

#glances -c server  [-p port]


-B @IP|HOST   Bind server to the given IPv4/IPv6 address or hostname

                服务器模式下指定本地监听的地址
-c @IP|HOST   Connect to a Glances server by IPv4/IPv6 address or hostname

                客户机模式下指定接入的地址

-s            Run Glances in server mode

                运行于服务器模式

-p PORT       Define the client/server TCP port (default: 61209)
                指定端口,默认61209

进程管理工具htop/glances/dstat的使用_htop_16

 进程管理工具htop/glances/dstat的使用_glances_17   


   工具三  dstat

   dstat是款强大的命令行系统数据收集展示工具,被设计用来替代:iostat,vmstat,ifstat。既可以在同一个界面中显示cpu,内存,磁盘,网卡数据这些对象的信息,也可通过不同的参数,一次展示某个对象的信息,还可找出占用对象最多的进程。

   先看下默认的dstat的界面:

进程管理工具htop/glances/dstat的使用_htop_18


   配合参数分别显示不同对象信息:

#dstat [option]

    1)显示cpu汇总统计信息:

#dstat -c

从左至右依次为:

     用户空间进程占用cpu周期时长百分比

     系统空间进程占用cpu周期时长百分比

     cpu处于空闲状态占cpu周期时长百分比

     cpu处于等待状态占cpu周期时长百分比

     cpu发送硬件中断占用cpu周期时长百分比

     cpu发生软中断占用cpu周期时长百分比

进程管理工具htop/glances/dstat的使用_htop_19

当有多颗cpu时,还可显示指定cpu信息

#dstat -C cpu编号,cpu编号,。。

下图中的例子展示的是cpu0 和 dstat默认对象的统计情况

进程管理工具htop/glances/dstat的使用_htop_20


    2)只显示磁盘的read和write信息

#dstat -d

进程管理工具htop/glances/dstat的使用_dstat_21

    3)只显示系统负载的

#dstat -l

进程管理工具htop/glances/dstat的使用_glances_22

   4)只显示内存page交换信息

#dstat -g

   5)只显示cpu被中断的信息

#dstat -i

   6)只显示内存被使用的信息

#dstat -m

   7)只显示网卡收发数据包的统计信息

#dstat -n

   8)只显示进程相关的信息

#dstat -p

   9)只显示i/o请求的速率

#dstat -r

   10)只显示swap相关数据的

#dstat -s

    11)只显示系统相关的数据,包括中断和进程切换

#dstat -y

    配合参数找出各个top进程

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

进程管理工具htop/glances/dstat的使用_glances_23 

    13)--top-bio:显示最消耗block io的进程;

进程管理工具htop/glances/dstat的使用_dstat_24

    14)--top-io:最占用io的进程;

进程管理工具htop/glances/dstat的使用_glances_25


    15)--top-mem:显示最占用内存的进程

进程管理工具htop/glances/dstat的使用_系统性能_26


    其它可用选项:

--ipc:显示用于进程间通信相关的速率数据

--raw:显示raw套接字的相关数据

--tcp:显示tcp套接字的相关数据

--udp:显示udp套接字的相关数据

--unix:显示inux sock接口相关统计数据

--socket:显示上面所有的统计相关统计数据(total, tcp, udp, raw)

      更多的选项和插件功能,请参阅man帮助。

      相对htop和glances来说,dstat比较枯燥,但dstat是被收录进系统光盘中程序,其重要性可见一斑,还是老老实实的记忆和使用吧!