顺序 IO 和 随机 IO
2014-03-29 23:58
489 查看
IO 可分为顺序 IO 和 随机 IO 两种,性能监测前需要弄清楚系统偏向顺序 IO 的应用还是随机 IO 应用。顺序 IO 是指同时顺序请求大量数据,比如数据库执行大量的查询、流媒体服务等,顺序 IO 可以同时很快的移动大量数据。可以这样来评估 IOPS 的性能,用每秒读写 IO 字节数除以每秒读写 IOPS 数,rkB/s 除以 r/s,wkB/s 除以 w/s. 下面显示的是连续2秒的 IO 情况,可见每次 IO 写的数据是增加的(45060.00 / 99.00 = 455.15 KB per IO,54272.00 / 112.00 = 484.57 KB per IO)。相对随机 IO 而言,顺序 IO 更应该重视每次 IO 的吞吐能力(KB per IO):
$ iostat -kx 1 avg-cpu: %user %nice %system %iowait %steal %idle 0.00 0.00 2.50 25.25 0.00 72.25 Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util sdb 24.00 19995.00 29.00 99.00 4228.00 45060.00 770.12 45.01 539.65 7.80 99.80 avg-cpu: %user %nice %system %iowait %steal %idle 0.00 0.00 1.00 30.67 0.00 68.33 Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util sdb 3.00 12235.00 3.00 112.00 768.00 54272.00 957.22 144.85 576.44 8.70 100.10随机 IO 是指随机请求数据,其 IO 速度不依赖于数据的大小和排列,依赖于磁盘的每秒能 IO 的次数,比如 Web 服务、Mail 服务等每次请求的数据都很小,随机 IO 每秒同时会有更多的请求数产生,所以磁盘的每秒能 IO 多少次是关键。
$ iostat -kx 1 avg-cpu: %user %nice %system %iowait %steal %idle 1.75 0.00 0.75 0.25 0.00 97.26 Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util sdb 0.00 52.00 0.00 57.00 0.00 436.00 15.30 0.03 0.54 0.23 1.30 avg-cpu: %user %nice %system %iowait %steal %idle 1.75 0.00 0.75 0.25 0.00 97.24 Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util sdb 0.00 56.44 0.00 66.34 0.00 491.09 14.81 0.04 0.54 0.19 1.29按照上面的公式得出:436.00 / 57.00 = 7.65 KB per IO,491.09 / 66.34 = 7.40 KB per IO. 与顺序 IO 比较发现,随机 IO 的 KB per IO 小到可以忽略不计,可见对于随机 IO 而言重要的是每秒能 IOPS 的次数,而不是每次 IO 的吞吐能力(KB per IO)。
相关文章推荐
- 总结一下mysql的随机IO和顺序IO
- SQLIO 模拟随机或者顺序的方式来测试磁盘IO的性能
- 淘宝海量数据库之八-攻克随机IO难关 -----阿里正祥的博客
- 算法系列笔记2(静态表顺序统计-随机选择算法和BFPRT算法)
- labVIEW的随机数组、数组颠倒顺序与后几位前移
- excel打乱各行的顺序,实现无序随机排列
- 淘宝海量数据库之六-克服随机IO难题 oceanbase
- 记录是按照插入的顺序而返回吗,如何将返回记录随机排序
- Java io文件操作(按字符、字节、行、随机读取,追加,文件操作)
- Java io文件操作(按字符、字节、行、随机读取,追加,文件操作)
- 磁盘系统基本概念以及磁盘的顺序读写与随机读写
- 对List顺序,逆序,随机排列实例代码
- 数据库如何抵抗随机IO:问题、方法与现实
- JavaIO之RandomAccessFile随机访问文件
- JavaIO之RandomAccessFile随机访问文件
- 使用mongoperf评估磁盘随机IO性能
- 把1到10顺序排列的数随机打乱顺序(Java版)
- 使用Jquery随机删除一个顺序列表中某个子元素的方法,保持效果统一性
- 随机打乱数组(包括二维数组)的顺序-python实现
- java集合类之随机访问和顺序访问