Linux进程管理查看工具,顾名思义,就是查看系统中运行的进程及与进程属性相关的各种信息,工具如何使用,下面详细介绍一下:
一、先来介绍一下htop查看工具,此工具为top工具的升级版,比其看起来更直观,如果系统中没有此工具,可以用yum进行安装。先来看下定义:htop - interactive process viewer,是一个交互式的进程查看工具,在命令行中输入htop 回车,则显示页面如下:
1、先来看头部部分,如下图:
2、再来看主体部分
PID:进程标志号,是非零正整数;也称进程ID
USER:进程所有者的用户名
PR:进程的优先级别
NI:进程的优先级别数值
VIRT:进程占用的虚拟内存值
RES:进程占用的物理内存值
SHR:进程使用的共享内存值
S:进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数
CPU%:该进程占用的CPU使用率
MEM%:该进程占用的物理内存和总内存的百分比
TIME+:该进程启动后占用的总的CPU时间
COMMAND:进程启动的启动命令名称
3、底部菜单栏:
F1帮助;页面显示各种快捷键,图略
F2设置:可以设置界面颜色、时钟的显示方式、头部显示栏设置等;如我的Task之前在头部没有显示,如下图:
F3查找,可根据用户查找
F4过滤器,以进程名过滤搜索
F5树状显示进程间的关系(父子进程),如下图:
F6排序:可以选择属性进行排序;也可直接用鼠标点到属性排序
F7增加进程优先级,则要先选择相应的进程
F8减少进程优先级
F9终止进程
F10退出,按键q也可退出
有些选项也可以直接在命令行输入,进入界面后直接显示出来,常用选项有:
-d #: 刷新时间间隔
-u USERNAME: 仅显示指定用户的进程
-s COLUMN: 以指定的字段进行排序
二、glances
(一)先来看一下交互式界面,本人用矩形将信息分区并标号了,所以下面根据下图,以标号分区对其进行描述;
1、cpu--占有率、user:用户占用cpu率、system:系统内核占用率、idle:cpu空闲率;
2、nice:%nice值所占cpu率、iowait:等待io的进程所占cpu率、irq:软中断占用cpu率
3、cpu等待运行队列的队列长度、1,5,15分钟的长度;
4、内存的使用情况,使用率、总空间、使用空间、空闲空间
5、Active: 在活跃使用中的缓冲或高速缓冲存储器页面文件的大小,除非非常必要否则不会被移作他用;Inactive: 在不经常使用中的缓冲或高速缓冲存储器页面文件的大小,可能被用于其他途径;buffers缓冲、cached已缓存
6、swap%进程所占swap分区率、swap分区总大小、使用大小、空闲大小
7、网络、各网卡名称及传送接收速度
8、Disk各个盘分区
9、mount挂载分区;used分区用掉多少;total分区大小;注:与命令行输入df -h结果基本一样
10、tasks:进程总数、thr:线程、run运行数、休眠、其它状态、自动分类
11:VIRT: 虚拟内存大小;
RES: 进程占用的物理内存值;
%CPU:该进程占用的 CPU 使用率
%MEM:该进程占用的物理内存和总内存的百分比
PID: 进程 ID 号
NI: 进程优先级
S: 进程状态,其中 S 表示休眠,R 表示正在运行,Z 表示僵死状态
USER: 进程所有者的用户名
TIME+: 该进程启动后占用的总的 CPU 时间
IO_R 和 IO_W: 进程的读写 I/O 速率
NAME: 进程名称
也可在交互式界面按键h获取帮助;帮助信息热键如下,图略:
■a 自动对进程进行排序。
■c 按处理器使用百分比对进程进行排序。
■m 按内存使用百分比对进程进行排序。
■p 按名称对进程进行排序。
■i 按输入/输出速度对进程进行排序。
■d 显示/隐藏磁盘输入/输出的统计数字。
■f显示/隐藏文件系统的统计数字。
■n显示/隐藏网络的统计数字。
■s显示/隐藏传感器的统计数字。
■y显示/隐藏hddtemp的统计数字。
■l显示/隐藏日志。
■b 网络输入/输出的字节或比特。
■w 删除警告性日志。
■x 删除警告性日志和危急性日志。
■1全局处理器或单个处理器的统计数字。
■t 以合并方式查看网络输入/输出。
■u 查看累积的网络输入/输出
(二)命令行常用选项:
-b: 以Byte为单位显示网卡数据速率;
-d: 关闭磁盘I/O模块
-m: 禁用mount模块
-n: 禁用网络模块
-t #: 指定刷新时间间隔
-1:每个CPU的数据单独显示
-f /path/to/somewhere: 设置输出文件的位置及其格式;
-o {HTML|CSV}
eg:
此时会显示glances交互界面,所以可以双击1Linux-1,切换入2Linux-1中,如下图所示:
然后在命令行中输入信息如下所示:
注:输出html格式时,需要jinja2的支持,需要先安装依赖。默认输出的文件名是glances.html,可以通过http://IP/glances.html访问。
C/S[client/service]模式下运行glances命令:
服务模式:服务器输出数据
glances -s -B IPADDR
注:如果使用防火墙的情况下,需要在iptables上的放行;可以用自己的服务器实验
客户端模式:通过端口访问数据
glances -c IPADDR
IPADDR: 远程服务器监听的地址
注:此命令更多详细信息请参考:http://glances.readthedocs.org/en/latest/glances-doc.html#glances
三、dstat
-versatile tool for generating system resource statistics
SYNOPSIS
dstat [-afv] [options..] [delay [count]]
(一)其交互式界面如下:
1、---total-cpu-usage---:统计cpu使用情况
usr:用户使用cpu情况
sys:系统使用cpu情况
idl:cpu空闲空间
wai:'io等待'使用cpu情况
hiq:硬中断次数;硬中断概念:由与系统相连的外设(比如网卡、硬盘)自动产生的。主要是用来通知操作系统系统外设状态的变化。比如当网卡收到数据包的时候,就会发出一个中断。我们通常所说的中断指的是硬中断(hardirq)。注:参考资料:http://blog.csdn.net/zhangskd/article/details/21992933
siq:软中断;为了满足实时系统的要求,中断处理应该是越快越好。linux为了实现这个特点,当中断发生的时候,硬中断处理那些短时间就可以完成的工作,而将那些处理事件比较长的工作,放到中断之后来完成,也就是软中断(softirq)来完成。
2、-dsk/total-:disk情况
read:读信息量
write:写信息量
3、-net/total:网络情况
recv:接收信息量
send:发出信息量
4、--paging--:页面情况
in:内存换进
out:内存换出
5、--system--:系统内核
int: 处理的中断(interrupts)速率,太高会引起过高的上下文切换
csw: 上下文切换(Context switches)速率
(二)、常用命令选项
OPTIONS
-c, --cpu 显示cpu状态
enable cpu stats (system, user, idle, wait, hardware interrupt, software interrupt)
-d, --disk 统计显示disk的读写状态
enable disk stats (read, write)
-g, --page 统计并显示内存换进换出
enable page stats (page in, page out)
-i, --int 统计并显示中断次数
enable interrupt stats
-l, --load 统计并显示负载情况
enable load average stats (1 min, 5 mins, 15mins)
-m, --mem 统计并显示内存的使用、空闲、缓冲、缓存情况
enable memory stats (used, buffers, cache, free)
-n, --net 统计并显示网络收发情况
enable network stats (receive, send)
-r, --io 统计显示I/O请求,包括读写请求
enable I/O request stats (read, write requests)
-s, --swap 统计显示swap分区使用及空闲情况
enable swap stats (used, free)
-t, --time 显示当前时间
enable time/date output
-y, --sys 显示系统内核处理中断与上下文切换速率
enable system stats (interrupts, context switches)
--aio: 显示异步io统计数据
--ipc: ipc相关的信息
--raw: raw socket:即原始套接字,可以接收本机网卡上的数据帧或者数据包,对与监听网络的流量和分析是很有作用的.一共可以有3种方式创建这种socket.注:参考资:http://baike.baidu.com/view/4263346.htm?fr=aladdin
--tcp: tcp socket tcp套接字
--udp: udp socket udp套接字
--socket: raw, tcp, udp
--unix: unix sock
--top-cpu:显示最占用CPU的进程
--top-bio:显示最占用block IO的进程
--top-mem: 显示最耗费内存的进程
--top-io:最占用IO的进程