iostat命令简单使用

1.iostat使用范围

iostat命令可以生成3种类型的报告:

(1)CPU使用情况的报告

(2)设备使用情况的报告

(3)网络文件系统(NFS)使用情况的报告

2.每种报告的格式说明

关于CPU使用报告的格式解释:

%user:应用程序使用CPU的时间占比。

%nice:拥有高优先级的应用程序占用CPU的时间百分比。

默认情况下,所有应用程序的优先级一样,所以CPU不会偏袒哪一个。但如果有的优先级高,CPU就会先

去执行它们,那么对于这群身份特殊的应用程序,我们用%nice来统计它们的CPU使用占比。

%system:内核程序使用CPU的时间占比。

%iowait:CPU花费了多少时间去等待磁盘IO。此时CPU是空闲的,什么事都不做。

%idle:CPU什么都不做,既没有等待磁盘IO,也没有做其他事情。完全空闲状态。

%steal:之前管理程序服务于CPU1,突然CPU2跑来了,此时管理程序跟CPU1说:你等会哈,我先去服务CPU2,马上回来。

此时,CPU1被强制置于等待状态。CPU1等待的时间占比就是%steal。(个人理解)

关于设备使用报告的格式解释:

tps:每秒发送给设备的传输数。这里的传输指的是:发给设备的一个I/O请求。

所以,tps的意思就是:每秒发给设备的I/O请求数。一个读请求叫做一个I/0,一个写请求也叫做一个I/O。

Blk_read/s:每秒从设备读取的block数。每个block的大小是512字节,等于一个扇区的大小。

Blk_wrtn/s:每秒写入到设备的block数。每个block的大小是512字节,等于一个扇区的大小。

Blk_read:从该设备读取的总block数。发出去的block数。

Blk_wrtn:写入到该设备的总block数。拿进来的block数。

kB_read/s:每秒从设备读取的千字节数。kilobytes。

kB_wrtn/s:每秒写入到设备的千字节数。kilobytes。

kB_read:从设备读取的总千字节数。kilobytes。发出去的数据量。

kB_wrtn:写入到该设备的总千字节数。kilobytes。拿进来的数据量。

MB_read/s:每秒从该设备读出去的兆字节数。megabytes。

MB_wrtn/s:每秒写入到该设备的兆字节数。megabytes。

MB_read:从该设备读出去的总兆字节数。

MB_wrtn:写入到该设备的总兆字节数。

rrqm/s:没有理解,会查找资料来补充。

wrqm/s:没有理解,会查找资料来补充。

r/s:每秒发送给设备的读请求数。(重要指标)

w/s:每秒发送给设备的写请求数。(重要指标)

rsec/s:每秒从这个设备读取了多少个扇区。

wsec/s:每秒写入了多少个扇区到该设备。

rkB/s:每秒从设备读取的千字节数。kilobytes。(与前面的kB_read/s一样)

wkB/s:每秒写入到设备的千字节数。kilobytes。(与前面的kB_write/s一样)

rMB/s:与上面类似。

wMB/s:与上面类似。

avgrq-sz:所有发送给设备的请求,都有大小。这个参数用于表示所有请求的平均大小,以扇区为单位。

avgqu-sz:假如第1秒,设备前的请求队列中有5个请求;第2秒,设备前的队列中有4个请求;

第3秒,设备前的请求队列中有3个请求,那么现在我来计算,设备前的队列,平均每秒是多长:

5 + 4 + 3 / 3 = 4。也就是平均每秒都有4个请求在排队。

await:设备服务每个请求的平均时间。包括请求的排队时间和实际服务时间。比如我去肯德基,

我的前面有4个人,排了15分钟后,服务员开始给我服务。我点了汉堡和可乐,过

了5分钟,服务员将汉堡和可乐交给了我,我拿着东西离开了。所以对于我这个人(请求),

肯德基的服务时间是20分钟。单位是毫秒。

svctm:这个字段会在将来的sysstat安装包中移除。所以不需要关注。(我们的iostat来自于sysstat这个安装包)

%util:没有理解,会查找资料来补充。

关于网络文件系统报告:

NFS客户端会挂载NFS服务端分享的设备,我们可以在NFS客户端上统计我们使用NFS的情况。

Filesystem:指的是网络文件系统。可以用ip:目录或hostname:目录表示。

比如:10.10.10.10:/data/image或者img.example.com:/data/image。

rBlk_nor/s:应用程序通过read()这个系统调用接口,从网络文件系统中读出来的block数,一个block的大小是512字节。

wBlk_nor/s:应用程序通过write()这个系统调用接口,写入到网络文件系统中的block数。

rBlk_dir/s:我们从某个打开的文件中读取的block数。这个文件在网络文件系统中,并且是以O_DIRECT标记打开的。

wBlk_dir/s:我们写入到某个打开的文件中的block数。这个文件在网络文件系统中,并且是以O_DIRECT标记打开的。

rBlk_svr/s:NFS客户端通过NFS READ请求,从服务器读取的block数。

wBlk_svr/s:NFS客户端通过NFS WRITE请求,写入到服务器的block数。

rkB_nor/s:应用程序通过read()这个系统调用接口,从网络文件系统中读出来千字节数。kilobytes。

wkB_nor/s:应用程序通过write()这个系统调用接口,写入到网络文件系统中的千字节数。kilobytes。

rkB_dir/s:我们从某个打开的文件中读取的千字节数。这个文件在网络文件系统中,并且是以O_DIRECT标记打开的。

wkB_dir/s:我们写入到某个打开的文件中的千字节数。这个文件在网络文件系统中,并且是以O_DIRECT标记打开的。

rkB_svr/s:NFS客户端通过NFS READ请求,从服务器读取的千字节数。

wkB_svr/s:NFS客户端通过NFS WRITE请求,写入到服务器的千字节数。

rMB_nor/s:同上,只是改了下单位。

wMB_nor/s:同上,只是改了下单位。

rMB_dir/s:同上,只是改了下单位。

wMB_dir/s:同上,只是改了下单位。

rMB_svr/s:同上,只是改了下单位。

wMB_svr/s:同上,只是改了下单位。

ops/s:每秒向文件系统发起的操作数。

rops/s:每秒向文件系统发起的读操作数。

wops/s:每秒向文件系统发起的写操作数。

总的来说,套路就是:block数,千字节数,兆字节数。

3.命令选项

iostat -c  只显示CPU使用情况

iostat -d  只显示设备使用情况

iostat -n  只显示网络文件系统使用情况

iostat -k  以千字节显示,没有加k时,是以block数显示的

iostat -m   以兆字节显示,没有加m时,是以block数显示的

iostat -N  查看LVM2时比较有用

iostat -j { ID | LABEL | PATH | UUID} [ device | ALL ]  没理解,待查资料。

iostat -p [ { device | ALL } ]  显示块设备的统计信息以及它的分区的统计信息,比如sda块设备和它的分区sda1。

iostat -t  显示每次打印的时间

iostat -V   打印sysstat的版本

iostat -x  展示扩展统计数据,需要参考/proc/diskstat文件和/proc/partions文件

iostat -y  忽略第一次报告(第一次统计数据是从系统启动后算起的),从第二次开始显示

iostat -z  忽略那些在取样期间,没有任何活动的设备统计数据。也就是说,如果设备没有任何写入和读取,那么无须统计它的数据

4.注意事项

/proc文件系统必须要挂载上,iostat才可以工作。

svctm:平均服务时间,这个字段以后将没有意义。因为I/O统计数据是在block层计算的,我们并不知道磁盘驱动器什么时候开始处理一个请求。

5.附加文件

/proc/stat包含系统统计数据。

/proc/uptime包含系统运行时间。

/proc/diskstats包含磁盘统计数据。

/sys包含块设备的统计数据。

/proc/self/mountstats包含网络文件系统的统计数据。

/dev/disk包含持久设备名

6.其余参考命令

sar

pidstat

mpstat

vmstat

时间: 2024-07-28 22:21:46

iostat命令简单使用的相关文章

iostat命令简单说说

tps: 每秒钟发送到的I/O请求数. Blk_read /s: 每秒读取的block数 Blk_wrtn/s: 每秒写入的block数 Blk_read: 读入的block总数 Blk_wrtn: 写入的block总数 -x 输出扩展信息. 主要看三个参数: await:I/O请求平均执行时间.包括发送请求和执行的时间.单位是秒毫 svctm:发送到设备的I/O请求的平均执行时间.单位是毫秒(如果过高表示i/o设备成为性能瓶颈) %util:设备负载        

iostat命令详解

iostat命令详解 iostat用于输出CPU和磁盘输入输出.分区.网络文件系统NFS相关的统计信息.iostat命令用于监控系统设备的输入/输出情况,并生成报告,以便根据统计报告修改系统配置,获取更优的性能. 命令格式:iostat [ -c ] [ -d ] [ -N ] [ -n ] [ -h ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -z ] [ device [...] | ALL ] [ -p [ device [,...] | ALL ] ] [

vmstat和iostat命令进行Linux性能监控

这是我们正在进行的Linux命令和性能监控系列的一部分.vmstat和iostat两个命令都适用于所有主要的类unix系统(Linux/unix/FreeBSD/Solaris). 如果vmstat和iostat命令在你的系统中不可用,请安装sysstat软件包.vmstat,sar和iostat命令都包含在sysstat(系统监控工具)软件包中.iostat命令生成CPU和所有设备的统计信息.你可以从这个连接中下载源代码包编译安装sysstat,但是我们建议通过YUM命令进行安装. 在Linu

预编译命令简单解释(转载)

我的blog是用开源的BlogEngine来架设的,有的时候为了满足自己的需求及要对源代码做一些修改.在我调试客户端代码的时候,不管是使用Firebug或者是Vs 2008来调试,看到的Javascript代码都是经过动态压缩过了的,这个系统有一个HttpHanddle是专门用来处理js文件请求的,在第一次请求的时候会对js代码进行压缩,去掉了注释换行符等不必要的字符,这样可以提高访问的速度,但是对调试非常的不利,相信我们谁都不愿意对着一堆压缩过了的JS代码做调试.于是我想到了C#的预编译指令,

yum安装iostat命令时,提示No package iostat available. 错误:无须任何处理

yum安装iostat命令时,提示No package iostat available. 错误:无须任何处理,要解决这个问题就需要安装相应的软件包,很多时候命令名不一定就是软件包的名字,具体解决方法如下: 敲入yum -q install /usr/bin/iostat命令进行安装 这里的/usr/bin/iostat是不存在的,那为什么却可以找到所属的包呢? 其实就是用了rpm数据库来查找的.至于为什么要用/usr/bin这个路径,是因为这个命令是属于用户的命令,即/usr.这个也是猜测的,

Linux awk命令简单操作

AWK Command: 一 : print print item1,item2,.......... 要点: 1.各项目之间使用逗号隔开,而输入时则以空白字符分隔 2.输出的item可以为字符串或树枝,当前记录的字段(如$1).变来那个或awk的表达式,树枝会转换成字符串 3.print命令后面的item可以省略,此时其功能相当于print $0,以此,如果想输出空白行,则需要print "" 例子: 1.awk 'BEGIN { pring "line one\n lin

查看系统的I/O使用iostat命令而使用iotop可以根据I/O统计信息排序,追踪到具体的进程

当看到I/O等待时间所占CPU时间的比重很高的时候,首先要检查的就是机器是否正在大量使用交换空间,因为硬盘操作的速度远远低于RAM,所以当系统内存耗尽,开始使用交换空间的时候,系统的性能会受到严重影响.任何想要访问硬盘的操作都要完成与硬盘的I/O交换.所以,故障排除的第一步是看内存是否耗尽,如果是,先解决这个问题.如果还有大量可用的RAM,你需要明确那个进程占用了大部分I/O操作. 在你很难弄明白到底是哪个进程占用了大量I/O资源,使用iostat可以找到是哪个分区执行大量I/O操作. iost

系统性能监控之vmstat和iostat命令

这篇文章主要介绍一些Linux性能检测相关的命令. vmstat和iostat的两个命令可以运行在主流的Linux/Unix操作系统上. 如果vmstat和iostat命令不能再你的电脑上运行,请安装sysstat包.因为vmstat和iostat命令是集成在SYSSTAT(系统监视工具)包里面. iostat命令主要生成CPU和所有设备统计报告.你可以下载并安装SYSSTAT,如果使用源代码tar包安装,从这里下载SYSSTAT,但我们建议你使用yum命令安装. Linux下安装Sysstat

dd命令简单使用举例

bs为单位,count为写入的范围区间,如下举例: 例:使用dd清除vote disk和ocr(裸设备) $dd if=/dev/zero of=/dev/rrac_ocr1  bs=8192 count=17000 $dd if=/dev/zero of=/dev/rrac_vote1 bs=8192 count=17000 例:使用dd清除裸设备头部信息 $dd if=/dev/zero of=/dev/rlv_asm1 bs=8192 count=2560 以8k(8192字节)为单位,擦