进程管理经常用到的工具有:top、htop、glances、dstat,下面一一介绍。
htop、glances、dstat都是epel源里面的工具,需要单独安装。
推荐阿里云的yum镜像站点:
CentOS6 :http://mirrors.aliyun.com/epel/6Server/x86_64/
CentOS7 :http://mirrors.aliyun.com/epel/7/x86_64
top命令
top命令常用参数:
-d 1 # 设置刷新时间间隔为1s【默认是3秒】
-b # 批显示模式
-n 接数字 # 设置显示迭代的次数
-b -n 3# 批显示模式,显示3次即退出top命令
-U 用户名 # 仅显示对应用户的top命令进程信息
load average: 三个数分别代表不同时间段的系统平均负载(一分钟、五分钟、以及十五分钟)
使用top命令或者uptime命令查看系统负载,如果这个数除以CPU的数目(grep 'model name' /proc/cpuinfo |wc -l),所得值大于5就表明系统在超负荷运转。
具体请参考博文:http://blog.csdn.net/evenness/article/details/7658221
在top运行界面,各按键对应的功能如下:
M 按照内存占用大小排序。
P 按照CPU占用率排序
T 按照累计占据CPU的时长排序
l 显示或隐藏load average和启动时间
m 显示或隐藏Memory、swap占有率
t 显示或隐藏进程summary信息及CPU使用信息
c 显示完整的命令行信息
q 退出top命令
V 树状视图(CentOS 7上支持)
输入d 会提示修改top命令的刷新时间间隔。
输入k 会提示输入pid号以结束对应的进程。
输入r 会提示输入pid号以修改对应的nice值
CPU信息一行(如下图)所对应的英文缩写
us = user mode 用户空间占用CPU的百分比
sy = system mode内核空间占用CPU的百分比
ni = low priority user mode (nice) 改变过优先级的进程占用CPU的百分比
id = idle task 空闲CPU百分比
wa = I/O waiting IO等待占用CPU的百分比
hi = servicing IRQs硬中断(Hardware IRQ)占用CPU的百分比
si = servicing soft IRQs软中断(Software Interrupts)占用CPU的百分比
st = steal (time given to other DomU instances) 被偷走的时间这个虚拟机被hypervisor偷去的CPU时间(译注:如果当前处于一个hypervisor下的vm,实际上hypervisor也是要消耗一部分CPU处理时间的)。
htop命令
top命令很老了,htop支持鼠标操作,更加人性化,支持鼠标。
htop是epel源里面的文件,请确保epel源配置正确。
yum install htop -y
终端界面直接输入htop即可,如下图:
在htop界面,常用如下操作:
按F2键,可以设置显示格式、显示哪些数据。
按F9键,可以给选定的进程发送信号(重启、关闭信号等)。Enter确认操作,ESC取消操作。
按F5键或者小写的t键,可以以进程树的方式查看。
按F3键,可以搜索指定的进程。
按l键(小写字母),列出指定进程打开的文件列表
按a键,将选定的进程绑定至某指定CPU核心
按s键,跟踪选定进程的系统调用
htop的常用的几个命令行选项:
-s 选项 # sort 按指定的列排序,如htop -s PID
-u 用户名 # 显示指定用户名的进程信息
-d 数值 # 修改htop刷新时间间隔
glances命令
glances的牛逼之处在于可以自动高亮利用最高系统资源的程序,并为Linux提供尽可能多的信息。
glances工具属于epel源里面的,是一款跨平台的系统资源监视器。
运行效果如下图:
glances命令:
# 参考博文:http://linux.cn/article-2782-1.html
参数:
glances [-bdehmnrsvyz1] [-B bind] [-c server] [-C conffile] [-p port] [-P password] [--password] [-t refresh] [-f file] [-o output]
内建命令:
a Sort processes automatically l Show/hide logs
c Sort processes by CPU% b Bytes or bits for network I/O
m Sort processes by MEM% w Delete warning logs
p Sort processes by name x Delete warning and critical logs
i Sort processes by I/O rate 1 Global CPU or per-CPU stats
d Show/hide disk I/O stats h Show/hide this help screen
f Show/hide file system stats t View network I/O as combination
n Show/hide network stats u View cumulative network I/O
s Show/hide sensors stats q Quit (Esc and Ctrl-C also work)
y Show/hide hddtemp stats
常用选项:
-b: 以Byte为单位显示网卡数据速率;
-d: 关闭磁盘I/O模块;
-f /path/to/somefile: 设定输入文件位置;
-o {HTML|CSV}:输出格式;
-m: 禁用mount模块
-n: 禁用网络模块
-t #: 延迟时间间隔
-1:每个CPU的相关数据单独显示;
C/S模式下运行glances命令:
服务模式:
glances -s -B LocalIP -P xxxx
# IPADDR: 指明监听于本机哪个地址
# -P 后面接明文密码
客户端模式:
glances -c RemoteIP -P xxxx
# IPADDR:要连入的服务器端地址
# -P 后面接明文密码
dstat命令
dstat命令运行效果如下:
dstat命令行参数有:
-c 显示CPU的相关统计信息
-m 显示内存的相关统计信息
-n 显示网络的相关统计信息
-l 显示负载的相关统计信息(load average)
-d 显示Disk相关统计信息
-g 显示page相关统计数据
-p 显示process相关统计数据
-r 显示io请求相关的统计数据
-s 显示swapped相关的统计数据
--tcp
--udp
--unix
--raw
--socket
--ipc
--top-cpu:显示最占用CPU的进程;
--top-io: 显示最占用io的进程;
--top-mem: 显示最占用内存的进程;
--top-lantency: 显示延迟最大的进程;
例如:
dstat 3 # 每隔三秒刷新,但最新的数据都会每秒刷新显示。