深入浅出 iostat 命令

iostat命令 :报告系统CPU和IO相关统计信息。

iostat 第一行会输出 - 系统版本内信息 - 统计开始时间 - cpu数量

/ # iostat
Linux 4.13.3-1.el7.elrepo.x86_64 (web-006.tqt.bx.sinanode.com)  11/27/18    _x86_64_    (24 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           5.12    0.00    2.51    0.05    0.00   92.32

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               7.61        22.47       414.91  629294561 11620523644

下面想讲讲iostat几个重要参数。

-c  显示cpu统计数据
-d 显示硬盘统计数据
-k 以kb单位显示数据
-m 以mb单位线束数据
-p [ { device [,...] | ALL } ] 显示指定硬盘信息或者显示所有硬盘信息
-x 显示详细的统计信息

输出分为 CPUIO统计信息

CPU统计数据

%user 用户执行或者应用程序占用cpu的百分比
%nice 在用户级别上以较高的优先级执行时发生的CPU利用率。
%system 系统级别(内核)占用cpu的百分比
%iowait cpu再等待io返回的空闲时态时间百分比
%steal 显示虚拟CPU或CPU在管理程序服务另一个虚拟处理器时在非自愿等待中花费的时间百分比。
%idle cup的空闲百分比

%iowait 如果持续高占比,系统存在io瓶颈。
%idle 如果持续走低,系统可能出现很问题。(比如代码导致死循环,长时间等待数据库返回等)

IO统计数据

Device 这一列给出了/dev目录中列出的设备(或分区)名称。
tps 每秒发起的读写请求,相同扇区或者相邻扇区的请求会被合并
rrqm/s 每秒合并读操作的次数
wrqm/s 每秒合并写操作的次数
r/s  每秒完成的读请求
w/s 每秒完成的写请求
rkB/s 每秒读取的kB字节数
wkB/s 每秒写取的kB字节数
avgrq-sz IO请求的平均扇区数,即所有请求的平均大小,以扇区(512字节)为单位
avgqu-sz IO请求的平均队列长度
await 平局每个IO请求的时间,包括请求返回的时间和在队列中花费的时间
r_await 平局每个读请求的时间,包括请求返回的时间和在队列中花费的时间
w_await 平局每个写请求的时间,包括请求返回的时间和在队列中花费的时间
svctm 平局每个请求的执行时间。(这个指标已经废弃)
%util 工作时间占比,接近100%事可能出现系统瓶颈

avgqu-sz 该值越大,表示排队等待处理的io越多。
avgrq-sz 用户的请求是大IO,还是小IO通过这个值可以看出来。他的含义是指可这段时间用户请求数据>的大小。IO 大小 = avgrq-sz * 512字节 ,但是个值不会无限大,是受系统限制的,
cat /sys/block/sdc/queue/max_sectors_kb 128 128kB / 512B = 256 我的系统最大可用扇区256(不同系统可能不一样),如果这个值持续饱和,说明用户请求IO可能比较大。
await = 所有IO请求耗时/ 所有IO请求数,这个值是包含请求在队列里面的耗时 所以又有
await = 所有IO请求平均执行耗时 + 所有IO请求的平均队列耗时
从上面的计算公式可以得出单纯的看await值大并不能看出问题,(可能流量小的时候这个值会比较大)
举个例子:
单独一次请求耗时2ms,
a.250个IO请求同时进入等待队列
b.250个IO请求依次发起,待上一个IO完成后,发起下一个IO
第一种情况await高达500ms,第二个情况await只有4ms
这个时候我们要具体问题具体分析。不能武断的使用数值判断性能。
%util 这个值同样不能武断的使用,在不同流量下表现可能不太一样。但是如果持续维持再高点,我们一定要注意。

常用方法
# iostat -x 2 //每2秒输出一次数据

Linux 3.10.0-229.el7.x86_64 (web-004.tqt.bx.sinanode.com)   11/27/18    _x86_64_    (24 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           9.98    0.00    1.03    0.07    0.00   88.91

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.02     8.87    0.54    9.26    12.11   589.05   122.68     0.00    0.18    1.39    0.11   2.17   2.13

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          27.75    0.00    1.34    0.00    0.00   70.90

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

# iostat -x 2 2 #2秒中输出一个 总计数据2个

Linux 3.10.0-229.el7.x86_64 (web-004.tqt.bx.sinanode.com)   11/27/18    _x86_64_    (24 CPU)
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           9.98    0.00    1.03    0.07    0.00   88.91

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.02     8.87    0.54    9.26    12.11   589.05   122.68     0.00    0.18    1.39    0.12   2.17   2.13

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          27.11    0.00    1.36    0.57    0.00   70.97

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00    57.50    0.00    4.50     0.00   248.00   110.22     0.05   11.22    0.00   11.22   5.89   2.65

写到这里对iostat 介绍的就差不多了,iostat命令数据的结果受很多因素的影响,我们不能武断的使用统计结果,要多多思考才能有更大的帮助。

本文参考了 Bean Li 深入理解iostat 感谢前辈大神的分享,文章内容有很多干货,建议大家看看。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,056评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,842评论 2 378
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,938评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,296评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,292评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,413评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,824评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,493评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,686评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,502评论 2 318
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,553评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,281评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,820评论 3 305
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,873评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,109评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,699评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,257评论 2 341

推荐阅读更多精彩内容