友情提醒:文件涉及到的实验平台为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.界面说明
A区域使用彩色柱状结构分别显示CPU,Memory和Swap的使用情况。在同一个项目内不同的颜色柱表示不同的内容,各色柱体的多少分别表示占用的百分比。颜色对比见下图。
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界面:
[[email protected] ~]$ which htop
/usr/bin/htop ------------------>可以看到htop可被超级用户root和普通用户使用
[[email protected] ~]$ htop ---------->可以这样打开htop工具,当然也同下面提供的选项一起使用
[[email protected] ~]$ htop -d #
--->#为数字,-d 可以指定htop界面中两次刷新时间间隔时长,默认1/10秒
[[email protected] ~]$ htop -u usename
---->在htop界面中只显示进程属主为 username 的进程
2)htop界面中快捷键使用展示
F1:只需在htop界面中按下F1键就可呼出帮助信息
F2:只需在htop界面中按F2就可进入定制个性话htop界面,包括显示色彩,显示项目内容等。
左侧setup是可定制的项目,右侧为项目中的内容。
使用上下左右方向键可以选择,定制完后按F10退出定制界面。
F3:只需在htop界面中按F3就可进入搜索界面,输入要搜索的关键字,即可在C区域中定位包含关键字的进程条目,被选中的条目会变色。ESC按键退出到正常htop界面。
在这个例子中看到,输入关键字vim,那么包好vim关键字的进程条目自动被选中并变色显示。
F4:只需在htop界面中按F4就可进入定制过滤界面,输入关键字,htop为依照输入的关键字,在C区域中显示包含关键字的进程条目。ESC*2次或者回车键退出该界面。
F5:只需在htop界面中按F5,可实现在C区域中以树状形式显示进程间的关系。
F6:在C区域中进程显示时,默认按照CPU%列的值为标准进行排序的,想改变这种排序方式,定义一个新的参考列值,只需在htop界面中按F6进入。左侧为排序标准,上下方向键选择,选中后按enter键即可。
F7:调小进程nice值的,这个只有root用户可用,建议配合F4一起使用。
先使用F4功能选出要调值的进程
按Enter键,按F7给选中的进程调小nice值,按一次F7 该进程nice值减小1,比较下图和上图nice值的差别
F8:调大进程的nice值的,这个同F7使用类似,只是不限制用户身份,当然“自家的孩子自己可以打,打别人家的。。。除了你是root”
F9:向进程传递Single信号的,建议同F4过滤一起使用。
先使用F4的功能选出实施动作的进程
按Enter键,再按F9进入信号选择界面,左侧为信号,按上下方向键选择。选择后按Enter间发送信号,按ESC键取消发送。
再观察被发送15 SIGTERM信号后 vim进程的变化,显示vim进程被正常解释。
这就是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的界面:
要实施监控界面中监控对象的定义有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
工具三 dstat
dstat是款强大的命令行系统数据收集展示工具,被设计用来替代:iostat,vmstat,ifstat。既可以在同一个界面中显示cpu,内存,磁盘,网卡数据这些对象的信息,也可通过不同的参数,一次展示某个对象的信息,还可找出占用对象最多的进程。
先看下默认的dstat的界面:
配合参数分别显示不同对象信息:
#dstat [option]
1)显示cpu汇总统计信息:
#dstat -c
从左至右依次为:
用户空间进程占用cpu周期时长百分比
系统空间进程占用cpu周期时长百分比
cpu处于空闲状态占cpu周期时长百分比
cpu处于等待状态占cpu周期时长百分比
cpu发送硬件中断占用cpu周期时长百分比
cpu发生软中断占用cpu周期时长百分比
当有多颗cpu时,还可显示指定cpu信息
#dstat -C cpu编号,cpu编号,。。
下图中的例子展示的是cpu0 和 dstat默认对象的统计情况
2)只显示磁盘的read和write信息
#dstat -d
3)只显示系统负载的
#dstat -l
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的进程;
13)--top-bio:显示最消耗block io的进程;
14)--top-io:最占用io的进程;
15)--top-mem:显示最占用内存的进程
其它可用选项:
--ipc:显示用于进程间通信相关的速率数据
--raw:显示raw套接字的相关数据
--tcp:显示tcp套接字的相关数据
--udp:显示udp套接字的相关数据
--unix:显示inux sock接口相关统计数据
--socket:显示上面所有的统计相关统计数据(total, tcp, udp, raw)
更多的选项和插件功能,请参阅man帮助。
相对htop和glances来说,dstat比较枯燥,但dstat是被收录进系统光盘中程序,其重要性可见一斑,还是老老实实的记忆和使用吧!