Linux性能监控工具Iostat详解

作为一个运维工程师来说掌握一些系统的分析工具是必须的

命令工具:iostat

那么它能做什么呢?通过man page可以看出来

技术分享

【一】:统计cpu的状态

【二】:统计设备或者分区的I/O信息

以下对常用参数做简单的说明

技术分享

-c:显示cpu的统计信息,不能和-d同时使用

-d:输出设备和分区的I/O信息,不能与-c同时使用

-h:显示可读性更好的NFS目录统计信息

-k:用“kbytes/s”来代替“块/s”显示统计信息。要求kernel>=2.4

-m:用“mbytes/s”来代替“块/s”显示统计信息。要求kernel>=2.4

-t:显示NFS目录统计信息。Kernel>=2.6.17 && 不能与-x同时使用

-x:显示扩展统计信息。不能与-p和-n同时使用,kernel>=2.5因为它需要/proc/diskstats或者加载sysfs获取统计信息

-p:显示系统使用的块设备和它们的分区统计信息。不能与-x同时使用,如果指定了设备名称,将显示指定设备和它的所有分区的统计,如果使用了关键字ALL,将显示系统所有块设备和分区统计信息。

count:刷新次数

interval:刷新的时间间隔

ok For examples

统计cpu使用情况,输出三次且每一秒刷新一次

技术分享

%system:系统进程占用cpu的百分比

%iowait:系统输出数据至磁盘时空闲的cpu时间百分比,也叫iowait等待

%idle:系统没有任何数据输出至磁盘的cpu时间百分比,即当前的cpu空闲率。

有此可见我的server 的cpu是很够用的

统计磁盘使用情况,输出三次且每隔两秒刷新一次

技术分享

device:即设备名称

tps:设备每秒的传输次数,一个I/O请求表示一个传输。多个逻辑请求可能会合并为“一次I/O请求”,“一次传输”请求的大小是未知数。

BLK_read/s:每秒从设备读取数据量

BLK_writn/s:每秒写入设备的数据量

BLK_read:读取的总数据量

BLK_wrtn:写入的总数据量

最常用的分析

Iostat d k 1 10

Iostat d m 3

Iostat d x k 1 10

实例分析如下:

技术分享

上述截图中,我只分析xvdd这个设备(dev)

可以看到,磁盘每3秒传输次数平均值约为10.5左右,每3秒磁盘读取约为62kb,写入约为:110kb,这个值并不是一个准确值,why ? do you know why?因为时间段的问题

最好的测试就是多次求平均值或者使用一次的方式求当前值

如下所示:

技术分享

那么对于iostat还有很多的详细扩展,通过-x选项来获取详细

技术分享

这个就非常详细了,比如有每秒读/写扇区数,I/O队列长度,I/O操作的时间等等

技术分享

关于iostat的其他参数的用法请man或者google

##########################################################################################

【后记】

为何iostat是这样输出的呢?那么iostat命令到底对linux的性能测试有多大的作用呢?其实这些我也不懂,此时你需要知道iostat是如何设计的,看源代码

主要涉及的内容大概就4个都是和kernel相关的

/proc/目录下的diskstats,partitions,stat,cpuinfo

此处略去,需要请google或wget 


本文出自 “Hello_World” 博客,请务必保留此出处http://coward.blog.51cto.com/7599475/1633520

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。