美文网首页性能考虑
顺序IO和随机IO

顺序IO和随机IO

作者: chenhong_f1e2 | 来源:发表于2019-09-29 10:23 被阅读0次

@TOC

什么是顺序IO和随机IO

在这里插入图片描述

顺序IO是指读写操作的访问地址连续。在顺序IO访问中,HDD所需的磁道搜索时间显着减少,因为读/写磁头可以以最小的移动访问下一个块。数据备份和日志记录等业务是顺序IO业务。
随机IO是指读写操作时间连续,但访问地址不连续,随机分布在磁盘的地址空间中。产生随机IO的业务有OLTP服务,SQL,即时消息服务等。

如何解决随机IO造成的性能损失?

Mysql 数据最终都会刷到磁盘上去,刷盘分随机IO和顺序IO,两者性能相差很大,大多情况下我们会改变一下设计使Mysql 的随机IO变为顺序IO来提高性能

给随机IO添加缓存有更大的收益:

  1. 顺序I/O一般只需扫描一次数据、所以、缓存对它用处不大(收益小,不是说没用)
  2. 顺序I/O比随机I/O快
  3. 随机I/O通常只要查找特定的行、但I/O的粒度是页级的、其中大部分是浪费的、而顺序I/O所读取的数据、通常发生在想要的数据块上的所有行。

问题

什么是IOPS?

IOPS(Input/OutputOperations Per Second)是一个用于计算机存储设备(如硬盘(HDD)、固态硬盘(SSD)或存储区域网络(SAN))性能测试的量测方式,可以视为是每秒的读写次数。

机械硬盘和固态硬盘在随机IO上性能的影响因素?

对于机械硬盘或是其他类似的机电存储设备,其随机存取IOPS主要和存储设备的寻址时间有关,若是固态硬盘及其他固态电子设备,其随机存取IOPS主要和存储设备的内部控制器及记亿体接口速度有关。这两种设备的顺序访问IOPS(尤其是访问大数据区块)一般与包括存储设备可以持续的最大带宽有关。

SSD作为随机存储设备,其访问任意一块的时间应该是相等的,为什么顺序IO还是快于随机IO?

有多种原因导致了这种情况,一是SSD通常是主控芯片包含若干个通道,每个通道和若干闪存芯片相连,随机IO并不能像顺序IO那样,由多块芯片分担且并行传输以获得更高的性能,二是SSD有擦写/垃圾回收等机制,随机IO明显会提高这些机制的难度和频率,三是预读和缓存等机制对顺序IO会有更好的效果。 不过现在的SSD在多线程下的随机IO吞吐量已经很接近顺序IO了,但还是有一定的差距。

相关文章

  • 顺序IO和随机IO

    @TOC 什么是顺序IO和随机IO 顺序IO是指读写操作的访问地址连续。在顺序IO访问中,HDD所需的磁道搜索时间...

  • B+索引

    一、前提概念 随机IO与顺序IO:连续(TS)和随机(TR),是指本次IO给出的初始扇区地址,和上一次IO的结束扇...

  • 为什么Kafka这么快

    顺序IO 1.Kafka使用了顺序IO(Sequential IO),并极力避免随机磁盘访问(Random Dis...

  • 理解随机IO和顺序IO

    https://insightsblog.violinsystems.com/blog/understanding...

  • 存储IO分析

    IO Path App IO App 主动发起IO读、写;大、小;连续、随机;顺序、并发; 同步调用同步调用win...

  • linux 使用fio测试硬盘IO性能

    linux 使用fio测试硬盘IO性能 顺序读: 随机写: 顺序写: 混合随机读写: 说明:filename=/d...

  • Guava | IO

    一、Java IO 基于流的读取方式:只能顺序读取,不能随机读取

  • mysql索引基本分类与简单优化策略

    索引的优点 大大减少了服务器需要扫描的数据量 索引可以帮助服务器避免排序和临时表 将随机IO变为顺序IO BTre...

  • 实际测试内存在顺序IO和随机IO时的访问延时差异

    在《内存随机访问也比顺序慢,带你深入理解内存IO过程》一文中,我们理解了内存IO的内部实现过程,知道了内存的随机I...

  • mysql索引及数据库引擎

    顺序io(不需要每次都磁盘寻址,效率高),随机io(需要每次都磁盘寻址,效率低) 如何正确的创建合适的索引? 索引...

网友评论

    本文标题:顺序IO和随机IO

    本文链接:https://www.haomeiwen.com/subject/fqffpctx.html