内存监控命令之iostat命令
1概述:
iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析
2安装方法:
iostat属于sysstat软件包。可以直接安装。 yum install sysstat
3常用命令格式
iostat [参数] [时间] [次数]
4命令参数:
-c 显示CPU使用情况 -d 显示磁盘使用情况 -k 以K为单位显示 -m 以M为单位显示 -N 显示磁盘阵列(LVM) 信息 -n 显示NFS使用情况 -p 可以报告出每块磁盘的每个分区的使用情况 -t 显示终端和CPU的信息 -x 显示详细信息
5使用实例:
01
实例1:
显示所有设备负载情况
命令:
iostat
输出:
说明:
avg-cpu段: %user: 在用户级别运行所使用的CPU的百分比. %nice: nice操作所使用的CPU的百分比. %sys: 在系统级别(kernel)运行所使用CPU的百分比. %iowait: CPU等待硬件I/O时,所占用CPU百分比. %idle: CPU空闲时间的百分比. Device段: tps: 每秒钟发送到的I/O请求数. KB_read /s: 每秒读取的数据量. KB_wrtn/s: 每秒写入的数据量. KB_read: 读入的数据总量. KB_wrtn: 写入的数据总量.
注意:
如果%iowait的值过高,表示硬盘存在I/O瓶颈
如果%idle值高,表示CPU较空闲
如果%idle值高但系统响应慢时,可能是CPU等待分配内存,应加大内存容量。
如果%idle值持续低于10,表明CPU处理能力相对较低,系统中最需要解决的资源是CPU。
02
实例2:
定时显示所有信息
命令:每隔2秒刷新显示,显示4次
iostat 2 4
输出:
03
实例3:
显示指定磁盘信息
命令:
iostat -d /dev/sda
输出:
04
实例4:
查看设备使用率(%util)、响应时间(await)
命令:
iostat -d -x -k 1 1
输出:
说明:
rrqm/s:每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同Block的数据,FS会将这个请求合并Merge); wrqm/s:每秒这个设备相关的写入请求有多少被Merge了。 r/s:每秒读取的扇区数; w/s:每秒写入的扇区数。 rKB/s:每秒向设备发出的读取请求数;wKB/s:每秒向设备发出的写请求数; avgrq-sz: 平均请求扇区的大小 avgqu-sz: 是平均请求队列的长度。毫无疑问,队列长度越短越好。 r_await: io请求读取处理的平均时间 w_await:io请求写入处理的平均时间 svctm: 表示平均每次设备I/O操作的服务时间(以毫秒为单位)。如果svctm的值与await很接近,表示几乎没有I/O等待,磁盘性能很好,如果await的值远高于svctm的值,则表示I/O队列等待太长,系统上运行的应用程序将变慢。 %util:在统计时间内所有处理IO时间,除以总共统计时间。例如,如果统计间隔1秒,该设备有0.8秒在处理IO,而0.2秒闲置,那么该设备的%util = 0.8/1 = 80%,所以该参数暗示了设备的繁忙程度。一般地,如果该参数是100%表示设备已经接近满负荷运行了(当然如果是多磁盘,即使%util是100%,因为磁盘的并发能力,所以磁盘使用未必就到了瓶颈)。
05
实例5:
查看cpu状态
命令:
iostat -c 1 1
输出:
6常见用法:
iostat -d -k 1 10 #查看TPS和吞吐量信息(磁盘读写速度单位为KB) iostat -d -m 2 #查看TPS和吞吐量信息(磁盘读写速度单位为MB) iostat -d -x -k 1 10 #查看设备使用率(%util)、响应时间(await) iostat -c 1 10 #查看cpu状态