文档章节

linux查看磁盘IO情况

stone_
 stone_
发布于 2015/07/10 17:05
字数 864
阅读 2917
收藏 28

Linux系统出现了性能问题,一般我们可以通过top.iostat,vmstat等命令来查看初步定位问题。

1. top

top - 16:50:36 up 1 day,  4:59,  2 users,  load average: 0.06, 0.08, 0.08
Tasks: 159 total,   1 running, 158 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.2%us,  0.1%sy,  0.0%ni, 99.8%id,  29.6%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  16332240k total,  5605800k used, 10726440k free,   377964k buffers
Swap:  1048572k total,    10144k used,  1038428k free,  2244152k cached

查看29.6% wa

IO等待所占用的CPU时间的百分比,高过30%时IO压力高

2. iostat -x -k 1 3 

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.89    0.00    0.85   28.30    0.06   69.90
Device:   rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
vda       1.12    31.85    2.97    3.84   102.34   142.36    71.92     4.89  716.53  59.40  40.42
vdb       0.00    16.62    0.26    1.77    32.08    73.16   103.79     0.15   73.91  46.55   9.44
scd0      0.00     0.00    0.00    0.00     0.00     0.00     8.00     0.00    0.69   0.69   0.00
dm-0      0.00     0.00    1.13   35.38    89.29   141.49    12.64    35.61  975.29  11.34  41.42
dm-1      0.00     0.00    0.01    0.08     0.04     0.31     8.00    16.55 188972.09 1380.98  12.09

rrqm/s:每秒进行merge的读操作数目。即delta(rmerge)/s 
wrqm/s:每秒进行merge的写操作数目。即delta(wmerge)/s 
r/s:每秒完成的读I/O设备次数。即delta(rio)/s 
w/s:每秒完成的写I/0设备次数。即delta(wio)/s 
rsec/s:每秒读扇区数。即delta(rsect)/s 
wsec/s:每秒写扇区数。即delta(wsect)/s 
rKB/s:每秒读K字节数。是rsec/s的一半,因为每扇区大小为512字节 
wKB/s:每秒写K字节数。是wsec/s的一半 
avgrq-sz:平均每次设备I/O操作的数据大小(扇区)。即delta(rsect+wsect)/delta(rio+wio) 
avgqu-sz:平均I/O队列长度。即delta(aveq)/s/1000(因为aveq的单位为毫秒) 
await:平均每次设备I/O操作的等待时间(毫秒)。即delta(ruse+wuse)/delta(rio+wio) 
svctm:平均每次设备I/O操作的服务时间(毫秒)。即delta(use)/delta(rio+wio) 
%util:一秒中有百分之多少的时间用于I/O操作,或者说一秒中有多少时间I/O队列是非空的。即delta(usr)/s/1000(因为use的单位为毫秒) 

如果%util接近100%,说明产生的I/O请求太多,I/O系统已经满负载,该磁盘可能存在瓶颈。

比较重要的参数 
%util:一秒中有百分之多少的时间用于I/O操作,或者说一秒中有多少时间I/O队列是非空的 
svctm:平均每次设备I/O操作的服务时间 
await:平均每次设备I/O操作的等待时间 
avgqu-sz:平均I/O队列长度 

如果%util接近100%,表明I/O请求太多,I/O系统已经满负荷,磁盘可能存在瓶颈,一般%util大于70%,I/O压力就比较大,读取速度有较多的wait。 
await的大小一般取决于服务时间(svctm)以及I/O队列的长度和I/O请求的发出模式。如果svctm比较接近await,说明I/O几乎没有等待时间;如果 await远大于svctm,说明I/O队列太长,应用得到的响应时间变慢。

3vmstat

[root@host-172-28-5-132 crontab]# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0  10144 10689636 379488 2245436    0    0    34    54   12   73  1  1 70 28  0

vmstat查看查看b参数(等待资源的进程数)和wa参数(I/O等待所占用的CPU时间的百分比,高过30%时I/O压力高)

4. iotop

© 著作权归作者所有

共有 人打赏支持
stone_
粉丝 20
博文 221
码字总数 163611
作品 0
洛阳
程序员
私信 提问
一文掌握 Linux 性能分析之 I/O 篇

一文掌握 Linux 性能分析之 I/O 篇 这是 Linux 性能分析系列的第三篇,前两篇分别讲了 CPU 和 内存,本篇来看 IO。 IO 和 存储密切相关,存储可以概括为磁盘,内存,缓存,三者读写的性能差距...

优惠码大使
03/12
0
0
日常运维命令 iostat、free、ps aux、netstat -lnp、tcpdump等命令用法

10月24日任务 10.6 监控io性能 10.7 free命令 10.8 ps命令 10.9 查看网络状态 10.10 linux下抓包 10.6 、监控io性能 监控系统状态 iostat -x 命令,最重要关注的指标%util, 表示io等待,磁盘...

zgxlinux
2018/10/24
0
0
磁盘I/O高居不下,通过什么来查看占用I/O的进程?

iotop命令是一个用来监视磁盘I/O使用状况的top类工具。iotop具有与top相似的UI,其中包括PID、用户、I/O、进程等相关信息。Linux下的IO统计工具如iostat,nmon等大多数是只能统计到per设备的...

oldchild_qs
2018/06/29
0
0
cpu内存磁盘io过高问题处理

CPU占用过高分析 ----------------------------- 可以用top命令查看哪一个进程占用cpu高 或者哪一个占用内存大 top - 13:55:32 up 59 days, 19:18, 2 users, load average: 0.00, 0.04, 0.0...

super李导
2018/07/11
0
0
1111111111111 Linux 性能检查命令总结

***性能监测 mpstat类似vmstat,但能详细到某个cpu http://blog.csdn.net/joeyon1985/article/details/46682939 http://www.xitongzhijia.net/xtjc/20141203/31828_2.html 内存瓶颈: free,......

素雷
2018/02/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Java单例模式学习记录

在项目开发中经常能遇见的设计模式就是单例模式了,而实现的方式最常见的有两种:饿汉和饱汉(懒汉)。由于日常接触较多而研究的不够深入,导致面试的时候被询问到后有点没底,这里记录一下学习...

JerryLin123
昨天
3
0
VSCODE 无法调试

VSCODE 无法调试 可以运行 可能的原因: GCC 的参数忘了加 -g

shzwork
昨天
4
0
理解去中心化 稳定币 DAI

随着摩根大通推出JPM Coin 稳定币,可以预见稳定币将成为区块链落地的一大助推器。 坦白来讲,对于一个程序员的我来讲(不懂一点专业经济和金融),理解DAI的机制,真的有一点复杂。耐心看完...

Tiny熊
昨天
4
0
5.线程实现

用于线程实现的Python模块 Python线程有时称为轻量级进程,因为线程比进程占用的内存少得多。 线程允许一次执行多个任务。 在Python中,以下两个模块在一个程序中实现线程 - _thread 模块 th...

Eappo_Geng
昨天
6
0
ServiceLoader

创建一个接口文件在resources资源目录下创建META-INF/services文件夹在services文件夹中创建文件,以接口全名命名创建接口实现类 内容me.zzp.ar.d.PostgreSQLDialectme.zzp.ar.d.Hype...

Cobbage
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部