Linux性能监控工具Iostat详解

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

命令工具:iostat

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

wKioL1UvfsKgbz1aAADSA6zbhYA838.jpg

【一】:统计cpu的状态

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

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

wKioL1UvfuLTUwYxAAM9W4b14l8085.jpg

-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使用情况,输出三次且每一秒刷新一次

wKioL1UvfxHQJfWOAADijwMfmKk581.jpg

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

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

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

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

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

wKiom1Uvfe3gzPK4AAFMb7VEQN4138.jpg

device:即设备名称

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

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

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

BLK_read:读取的总数据量

BLK_wrtn:写入的总数据量

最常用的分析

Iostat �Cd �Ck 1 10

Iostat �Cd �Cm 3

Iostat �Cd �Cx �Ck 1 10

实例分析如下:

wKiom1UvfiywLNe2AAKhQbzo7CY142.jpg

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

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

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

如下所示:

wKiom1Uvfk2jn_KzAAC-70HOJzU414.jpg

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

wKiom1UvfuHiIC7XAAFHAhXTLuE741.jpg

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

wKioL1Uvf8OjyKCPAAO0LVKcMO0842.jpg

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

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

【后记】

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

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

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

此处略去,需要请google或wget 


你可能感兴趣的:(linux,iostat,性能监控)