首页 >> 知识 >> 性能:磁盘读写原理、分类与性能指标

性能:磁盘读写原理、分类与性能指标

存储系统的三大性能指标

一个存储系统的性能最主要的是三个:IOPS、访问延迟、吞吐率/带宽。这三个指标其实是相互关联和影响的,但是草莓视频在线观看APP一般还是分块来衡量。

IOPS(Input/Output Per Second),即每秒钟能处理的读写(IO)请求数,这是衡量存储性能的主要指标之一。

每个IO请求都有自己的特性,比如读还是写,是顺序读写还是随机读写、IO的大小是多少等。因为IO有这些特点,所以草莓视频在线观看APP讨论存储系统IOPS性能的时候,经常需要更加具体的模式,比如顺序IOPS、随机写IOPS等。IOPS的数值会随这样的参数不同而有很大的不同,这些参数的变化,包括读取和写入的比例,其中顺序读写以及随机读写的比例、读写大小、线程数量和读写队列深度等。此外,系统配置等因素也会影响IOPS的结果,比如操作系统的设置、存储设备的驱动程序特点、操作系统后台运行的作业等。

吞吐率和带宽,衡量的是存储系统的实际数据传输速率,通常以MB/s或者GB/s为单位。

吞吐量/率:每秒的IO请求大小一般来讲,IOPS和吞吐率是紧密相关的,它们之间的关系是,吞吐率等于IOPS和IO大小的乘积这个也很容易理解,比如对一个硬盘的读写 IO 是 1MB,硬盘的 IOPS 是 100,那么硬盘总的吞吐率就是 100MB/s。需要强调的是,这里 IO 的具体特性很重要,比如是顺序还是随机,IO 大小等。

访问延迟和响应时间:IO请求从发出到收到响应的间隔时间:

常以毫秒ms或者微妙us为单位。对这一性能指标,草莓视频在线观看APP通常会考虑它的平均值和高位百分数,比如P99,P95。

另外,有些存储系统会因为其IO队列深度增加,而获得更好的IO性能。比如吞吐率会升高,平均访问延迟会降低。 这是因为存储系统的IO队列处理机制,可以对IO进行重新排序,从而获得更好的性能。比如,它可以合并几个相邻的IO、把随机IO重新排序为顺序IO等

注意:草莓视频在线观看APP可能还需要关注如下项目:

使用率,是指磁盘处理IO的时间百分比。过高的使用率(比如超过80%),通常意味着磁盘IO存在性能瓶颈 使用率只考虑有没有IO,而不考虑IO的大小。换句话说。当使用率是100%时,磁盘依然有可能接收新的IO请求。使用率和饱和度是完全不同的

对于一个系统IO来说,需要把磁盘IO指标和文件系统IO指标区分开

下面是磁盘IO指标:

测试说明重要程度怎么测试哪些需要异常值IO读写延迟 / 响应时间IO请求从发出到收到响应的间隔时间最基本,必备一般是用4KB大小的IO做基准来测试单个磁盘、磁盘阵列、网络磁盘等必须IO带宽最基本,必备一般是针对比较大的IO而言单个磁盘、磁盘阵列、网络磁盘等必须IOPS每秒钟能处理的读写(IO)请求数最基本,必须对于HDD来说,一般为120;对于SSD(SATA)来说,一般为30K;对于SSD(NVMe),一般为400K饱和度磁盘处理IO的繁忙程度非必须磁盘过高说明磁盘IO瓶颈。当饱和度为100%时,磁盘无法接收新的IO请求使用率磁盘处理IO的时间百分比非必须磁盘过高说明磁盘IO瓶颈,经验值80%吞吐量 /率每秒的IO请求大小

下面这个表格列出了几种存储介质和它们的性能数值。

存储 根据存储介质分类

磁盘是可以持久化存储的设备,根据存储介质的不同,常见磁盘可以分为两类,机械磁盘和固态磁盘

HDD(传统硬盘)

机械磁盘,也叫做硬盘读写器(hard disk driver),通常缩写为HDD。

机械磁盘主要由盘片和读写磁头组成,数据就存储在盘片的环状磁道中。在读写数据前,需要移动读写磁头,定位到数据所在的磁道,然后才能访问数据显然,如果IO请求刚好连续,那就不需要磁盘寻址,自然可以获得最佳性能,这种方式就是连续(顺序)IO的原理。与之对应的就是随机IO,它需要不停的移动磁头,来定位数据位置,所以读写速度会比较慢

工作原理:

当应用程序发出硬盘IO请求后,这个请求就会进入硬盘的IO队列。如果前面有其他IO,那么这个请求可能需要排队等待当轮到这个IO来存取数据时,磁头需要机械运动到数据存放的位置,这就需要磁头寻址到相应的磁道,并旋转到相应的扇区,然后才是数据的传输所以,讨论到磁盘IO的性能时,需要充分考虑到这一点。

草莓视频在线观看APP有时候需要把硬盘响应时间和硬盘访问时间分别对待。如下图,【硬盘响应时间 = 硬盘访问时间 + IO排队延迟】

草莓视频在线观看APP如果拿起一块硬盘仔细看看,硬盘上面往往会标注后面三个参数,分别是平均寻址时间、盘片旋转速度,以及数据传输速度,这三个参数就可以提供给草莓视频在线观看APP计算上述三个步骤的时间。

平均寻址时间一般是几个毫秒。平均旋转时间可以从硬盘转动速度 RPM 来算出。因为每个IO 请求平均下来需要转半圈,那么如果硬盘磁头每分钟转一万圈(10K RPM),转半圈就需要 3 毫秒。要注意的是,硬盘上面标注的数据传输速度参数往往是最大值,实际的数据传输时间要取决于 IO 的大小。

对一块普通硬盘而言,随机IO读写延迟是8毫秒,IO带宽大约100MB/秒,随机IOPS一般在100左右。

硬盘技术也在发展。比如采用了多磁头技术,或者几块硬盘组成磁盘阵列,这样的整体IO性能也会提升。

SSD(固态磁盘) 固态磁盘(solid state disk),通常也叫做SSD,有固态电子元器件组成。 固态磁盘不需要磁道寻址,所以,不管是连续IO,还是随机IO的性能,都比机械磁盘要好得多

单元(cell)、页面(page)、块(block) 当今主流SSD是基于NAND的,它是将数字位存储在单元中。 每个SSD单元可以存储一位(SLC,Single Level Cell,单级单元)、两位(MLC,多级单元)、三位(TLC,三级单元)、四位(QLC)SSD的特点是,对SSD单元的每次擦除,都会降低单元的寿命,因此每一个单元只能承受一定数量的擦除。所以,不同的SSD都有这几方面的考虑和平衡。单元存储的位数越多,制造成本越少,SSD容量越大。但是耐久性(擦除次数)也会降低。所以高端SSD,比如企业级的,基本都是基于SLC的 一个页面包括很多单元,典型的页面大小是4KB。 页面也是读写的最小存储单位草莓视频在线观看APP知道,HDD可以直接对任何字节重写和覆盖;但是对SSD而言,不能直接“覆盖”操作。SSD的一个页面里面的所有单元,一旦写入之后就不能进行重写,必须和其他相邻页面一起,被整体擦除、重置。 在SSD内部,多个页面会组成快。一个块的典型大小为512KB或者1MB,也就是大约128或者256页。 块是擦除的基本单位,每次擦除,都是整个块内的所有页面都被重置 IO和垃圾回收

对SSD的IO操作,一共有三种类型:读取、写入、擦除。

读取和写入是以页为单位的,也就是说最少也要读取写入一个页面IO写入的延迟,具体取决于磁盘的历史状态。 因为如果SSD已经存储了很多数据,那么对页的写入,有时需要移动已有的数据,这种情况下写入延迟就比较大。但多数情况下,读写延迟都很低,一般在微秒级别,远低于HDD 擦除是以块为单位的。擦除的速度相对较慢,一般为几毫秒 所以,对同步的IO请求,发出IO的应用程序,可能会因为块的擦除而经历很大的写入延迟为了建立减少这样的场景发生,一块SSD最好保持一定数量的空闲块,这样可以保证SSD的写入速度足够快。SSD内部由垃圾回收(GC)机制,它的目的就在于此,就是不断回收不用的块,进行擦除,从而产生新的空闲块来备用。这样可以确保以后的页写入能快速分配到一个全新的页

写入放大(write amplification,WA)

这是SSD相对于HDD的一个缺点,即实际写入SSD的物理数据量,有可能是应用层写入数据量的多倍。

这是因为,一方面页级别的写入需要移动已有的数据来腾空页面来写入。另一方面,GC的操作,也会移动用户数据来进行块级别的擦除。

所以,对SSD真正的写操作的数据,肯定比实际写的数据量大,这就是写入放大。因为一块SSD只能进行有限的擦除次数,也即编程/擦除(P/E)周期,所以写入放大效应会缩短SSD的寿命。

损耗平衡

对每一个块而言,一旦擦除造成的损耗达到最大数量,该块就会“死亡”,再也不能存储数据了。对于 SLC 类型的块,P/E 周期的典型数目是十万次;对于 MLC 块,P/E 周期的数目是一万;而对于 TLC 块,则可能是几千。为了确保整块 SSD 的容量、性能和可靠性,SSD内部需要对整个 SSD 的各块做平衡,尽量在擦除次数上保持类似。

SSD控制器具有这样一种机制,“损耗平衡”:数据在各个块之间游动,以实现均衡的损耗。这种机制的害处在于会对前面的“写入放大”推波助澜

缺陷

性能方面,SSD 的 IO 性能相对于 HDD 来说,IOPS 和访问延迟提升了上千倍,吞吐率也是提高了几十倍。但是 SSD 的缺点也很明显。主要有三个缺点:

贵容量小一损耗

好消息是,随着技术的发展,这三个缺点近几年在弱化。

与 HDD 相比,采用 SSD 带来了极大的应用程序性能提升。但是,在大多数采用 SSD 的部署方案中,SSD 仅被视为一种“更快的HDD”,并没有真正发挥 SSD 的潜力。

为什么这么说呢?

因为尽管使用 SSD 作为存储时,应用程序可以获得更好的性能,但是这些收益,主要归因于 SSD 提供的更高的 IOPS 和带宽。但是,SSD 除了提供这些之外,它还有其它特点,比如易损耗,以及其独特的内部机制。如果应用程序的设计能充分考虑 SSD 的内部机制,设计出对 SSD 友好的应用程序,就可以更大程度地优化 SSD,从而进一步提高应用程序性能,也可以延长 SSD 的寿命,并降低运营成本。 小结: 随机IO与连续IO的反应

其实,无论是机械磁盘,还是固态磁盘,相同磁盘的随机IO都要比连续IO慢很多,原因也很明显:

对于机械磁盘来说,由于随机IO需要
网站地图