作为一个运维工程师来说掌握一些系统的分析工具是必须的。
命令工具: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
本文出自 “Hello_World” 博客,请务必保留此出处http://coward.blog.51cto.com/7599475/1633520
原文地址:http://coward.blog.51cto.com/7599475/1633520