专栏首页dogfei磁盘IO问题纪录

磁盘IO问题纪录

背景

随着公司站点的发展,用户和访问量日益增加,经常会出现数据库主从出现延迟的情况,例如,用户在点击充值页进行充值时,经常会出现充值不到账的情况,针对这个问题,对数据库进行排查,发现,磁盘IO极不稳定,iowait也很高,%util一直在90左右,这说明产生的I/O请求很多,IO已经满负荷,磁盘IO存在瓶颈。所以需要加一块SSD盘,来提高IO处理速度。

磁盘IO情况检测

可以结合vmstatiostat来判断IO和cpu的一些情况,例如:

vmstat 1 100
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 3  0      0 144716 133152 3805212    0    0   485  1565    2    2  3  1 90  6  0
 1  0      0 140188 133152 3808372    0    0 59940   744 2252 1537 42  2 36 20  0
 1  0      0 146236 133152 3803568    0    0 37632  7384 2434 1969 45  2 39 14  0
 1  1      0 120212 133152 3830100    0    0 26656   304 1469 1144 18  1 35 46  0
 1  0      0 143180 133156 3804948    0    0 48004   804 2292 1577 43  2 41 14  0
 0  1      0 158224 133156 3791228    0    0 28796  7988 2514 2212 45  2 37 17  0

r 表示运行队列,即多少个进程分配到了CPU,如果超过CPU核数,就会出现CPU瓶颈了

b 表示阻塞的进程

si 每秒从磁盘读入虚拟内存的大小,大于0,表示物理内存不够用或者内存泄漏

so 表示从磁盘每秒写入虚拟内存的大小,大于0,同上

bi 表示系统上所有的磁盘和其他块设备上每秒读入的总量

bo 表示所有磁盘上每秒写入的总量

in 每秒CPU中断的次数,包括时间中断

us 表示用户进程消耗的CPU时间百分比,us值越高,说明用户进程消耗CPU时间越多,如果长期大于50%,则需要考虑优化程序或者算法

sy 表示系统内核进程消耗的CPU时间百分比,一般来说us+sy应该小于80%,如果大于80%,说明可能存在CPU瓶颈

id 表示CPU处在空间状态的时间百分比

wa 表示IO等待所占用的CPU时间百分比,wa值越高,说明I/O等待越严重,根据经验wa的参考值为20%,如果超过20%,说明I/O等待严重,引起I/O等待的原因可能是磁盘大量随机读写造成的

综上,我们在判断IO问题的时候,参考bibowa便可以判断IO的情况。

再来看下iostat的使用:

iostat -x -k 1 100
Linux 3.10.0-693.2.2.el7.x86_64 (xs_88_55)      05/08/2018      _x86_64_        (2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           3.07    0.00    0.92    5.72    0.00   90.30

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda               0.01    83.24    7.92  199.19   954.62  3104.95    39.20     0.53    2.57   31.62    1.42   0.62  12.84
vdb               0.00     0.07    0.05    0.13    12.04    11.01   256.26     0.01   49.74   19.07   60.37   1.13   0.02

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.01    0.00    0.51    2.53    0.00   95.96

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda               0.00     4.00   30.00    2.00   124.00    24.00     9.25     0.03    0.78    0.77    1.00   0.09   0.30
vdb               0.00    83.00    8.00  119.00    68.00   828.00    14.11     0.07    0.53    0.62    0.52   0.53   6.70

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.00    0.00    0.50    2.49    0.00   96.02

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda               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
vdb               0.00    61.00   14.00   88.00   152.00   632.00    15.37     0.05    0.46    0.50    0.45   0.46   4.70

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

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

%iowait:CPU花费了多少时间去等待磁盘IO

%util: 表示磁盘忙碌情况,一般该值超过80%表示该磁盘可能处于繁忙状态

综上,在看IO时,关注iowaitutil来判断IO情况。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • linux下流量分析工具

    在日常的运维工作中,我们经常需要去关注网卡流量的使用情况,看是否处于正常的使用范围内,如果入网或者出网有异常升高或者降低,我们都要及早的去发现,来进行评估是否处...

    dogfei
  • nginx自定义header问题记录

    针对访问后台人数过多,导致源站压力巨大的问题,研发自定义了一个header信息,用来设置缓存,并判断是否命中header。针对这个问题,在测试环境进行测试时,发...

    dogfei
  • mysql压测和优化

    show status 输出的报告是用来计算性能瓶颈的参考数据,mysqlreport会对这些参数进行加以融合和计算,整理成优化参考点,然后针对这些参考点进行优...

    dogfei
  • 资源 | 给程序员,准入门级深度学习课程

    用户1737318
  • Redis 架构

    Linux有Linux kernal,我们的客户端,进行连接,首先到达的是Linux kernal,在Linux的早期版本,只有read和write进行文件读写...

    Parker
  • 数据解读城市:北京 本地人VS外地人

    华章科技
  • 4 小时 40 万访问!我们跟第一个刷爆朋友圈的小程序聊了聊

    根据对方提供的「小程序数据助手」截图,在朋友圈爆发后,仅用 4 个小时,大约在晚上 9 点,「匿名聊聊」的访问页面(PV)就从数千冲至 40 多万。

    知晓君
  • S/4HANA Service Management和SAP Field Service Management的集成

    经常有朋友提出这样的问题:“SAP Business Suite里的CRM的Service模块已经通过Addon的方式迁移到了S/4HANA上,并且SAP之前又...

    Jerry Wang
  • 迁移成分分析 (TCA) 方法简介

    之前整理总结迁移学习资料的时候有网友评论,大意就是现在的类似资料大全的东西已经太多了,想更深入地了解特定的细节。从这篇文章开始我将以《小王爱迁移》为名写一系列的...

    AI研习社
  • JavaScript的类型错误:Illegal invocation

    昨一看好像也没什么问题,在IE6~8下运行也没有任何的问题,可是在其它浏览器下就报错了,报了这样一个错:

    meteoric

扫码关注云+社区

领取腾讯云代金券