性能监控分析的命令包括如下:

1、vmstat

2、sar

3、iostat

4、top

5、free

6、uptime

7、netstat

8、ps

9、strace

10、lsof

命令介绍:

iostat是对系统的磁盘I/O操作进行监控,它的输出主要是显示磁盘读写操作的统计信息,同时给出CPU的使用情况。同vmstat一样,iostat不能对某个进程进行深入分析,仅对操作系统的整体情况进行分析。

常用格式:

iostat [-c | -d ] [-k | -m ] [-t] [-V] [-x] [device[…] | ALL] [-p [device | ALL ] ] [ interval [count] ]

iostat 进程 iostat -m_iostat 进程

参数解释:

-c:仅显示CPU统计信息,与-d选项互斥

-d:仅显示磁盘统计信息,与-c选项互斥

-k:以K为单位显示每秒的磁盘请求数,默认单位块。

-p:device | ALL     

与-x选项互斥,用于显示块设备及系统分区的统计信息,也可以在-p后指定一个设备名,如:iostat -p had

或者显示所有的设备,如:iostat -p ALL

-t:在输出数据时,打印搜集数据的时间

-V:打印版本号和帮助信息

-x 设备名:输出指定要统计的磁盘设备的扩展参数,默认为所有磁盘设备

interval:指两次统计间隔时间

-count:按照interval指定的时间间隔统计的次数

常用监控场景:

1、磁盘监控-扩展参数
#iostat -x //显示所有磁盘信息
#iostat -x 磁盘名 //显示指定磁盘的信息
显示结果如下:

iostat 进程 iostat -m_iostat 进程_02

各字段值解释:
rrqm/s:每秒进行merge的读操作数目,即delta(rmerge)/s。
wrqm/s:每秒进行merge的写操作数据,即delta(wmerge)/s.
r/s:每秒完成的读I/O设备次数,即delta(rio)/s。
w/s:每秒完成的写I/O设备次数,即delta(wio)/s。
rsec/s:每秒读扇区数,即delta(rsect)/s
wsec/s:每秒写扇区数,即delta(wsect)/s
rkB/s:每秒读K字节数,是rsect/s的一半,因为每扇区大小为512字节
wkB/s:每秒写K字节数,是wsect/s的一半
avgrq-sz:平均每次设备I/O操作的数据大小(扇区),即delta(rsect+wsect)/delta(rio+wio)
avgqu-sz:平均I/O队列长度,即delta(aveq)/s/1000(因为aveq的单位为毫秒)
Await:平均每次设备I/O操作的等待时间(毫秒),即delta(ruse+wuse)/delta(rio+wio)
Svctm:平均每次设备I/O操作的服务时间(毫秒),即delta(use)/delta(rio+wio)
%util:一秒中有百万分之多少的时间用于I/O操作,或者说一秒中有多少时间I/O队列是非空的,即delta(use)/s/1000(因为use的单位为毫秒)
2、CPU监控
每个3秒监控一次,总共监控3次

#iostat -c 3 3


显示结果如下:

iostat 进程 iostat -m_ios_03

各参数解释:

%usr:用户进程消耗的CPU时间百分比

%nice:运行正常进程消耗的CPU时间百分比

%system:系统进程消耗的CPU时间百分比

%iowait:I/O等待所占CPU时间百分比

%steal:在内存紧张环境下,pagein强制对不同的页面进行的steal操作

%idle:CPU空闲状态的时间百分比

3、磁盘监控

#iostat

显示结果如下:

iostat 进程 iostat -m_ios_04

各参数解释:
tps:每秒从物理磁盘I/O的次数,多个逻辑请求会被合并为一个I/O磁盘请求,一次传输的大小是不确定的。
Blk_read/s:每秒读取的数据块数
Blk_wrtn/s:每秒写入的数据块数
Blk_read:读取的所有块数
Blk_wrtn:写入的所有块数
4、常见用法
iostat -d -k 1 10 #查看TPS和吞吐量信息
iostat -d -x -k 1 10 #查看设备使用率(%util)、响应时间(await)
iostat -c 1 10 # 查看CPU状态
注意:
1代表每隔多少秒检查一次;10代表检查的次数