天天看点

《信息存储与管理(第二版):数字信息的存储、管理和保护》—— 2.7 磁盘驱动器的性能

本节书摘来异步社区《信息存储与管理(第二版):数字信息的存储、管理和保护》一书中的第2章,第2.7节,作者:【新加坡】g.somasundaram ,【美】alok shrivastava,更多章节内容可以访问云栖社区“异步社区”公众号查看。

信息存储与管理(第二版):数字信息的存储、管理和保护

磁盘驱动器属机电设备,它决定了存储系统环境的整体性能。本节将讨论影响它性能的各种因素。

磁盘服务时间(disk service time)是指磁盘完成一个i/o请求所花费的时间。影响它的因素有三个:寻道时间、旋转延迟和数据传输速率。

寻道时间

寻道时间(seek time,也叫访问时间,access time)指的是读写头在盘面上移动(沿着盘面半径方向)进行定位的时间,也就是移动驱动臂将读写头移动到正确的磁道上所需要的时间。寻道时间越短,i/o操作越快。磁盘生产商发布了以下寻道时间的规格。

全程时间(full stroke):读写头从最里面的磁道移动到最外面的磁道,跨越整个磁盘宽度的时间。

平均时间(average):读写头随机地从一个磁道移动到另一个磁道的平均时间,通常指的是全程时间的三分之一。

相邻磁道时间(track-to-track):读写头在两个相邻磁道间移动的时间。

上述规格都是以毫秒来度量的。磁盘生产商通常会标明磁盘的寻道时间。现在磁盘的平均寻道时间一般在3~15ms。对于读操作来说,在随机的磁道上读数据与在相邻磁道上读数据相比,寻道时间对前者的影响更为关键。为了减少寻道时间,可以把数据只写到某些柱面上去。这将导致比实际容量更低的有效磁盘容量。例如,如果只用到一个500gb磁盘靠外的前40%柱面,那么它的有效容量只有200gb。这就是所谓的磁盘短击(short-stroking)。

旋转延迟

为了存取数据,驱动装置和驱动臂需要将盘面上方的读写头移到特定的磁道,同时盘片旋转,将请求的数据(扇区)移到读写头下面。盘片旋转以定位读写头下方的数据(扇区)所用的时间,称为旋转延迟(rotational latency)。延迟时间取决于主轴的转速并以ms来度量。平均旋转延迟是主轴旋转一圈所需时间的二分之一。与寻道时间类似,读写随机选择的扇区与读写相邻扇区相比,旋转延迟对前者的影响更大。

一个转速为5 400rpm的磁盘的平均旋转延迟大约为5.5ms,而转速为15 000rpm(或每秒250转)的磁盘,其平均旋转延迟约为2.0ms。

数据传输速率

数据传输速率(data transfer rate,也叫传输速率,transfer rate)指的是每个单位时间内磁盘能够传输到hba的平均数据量。要计算数据传输速率,首先要明白读写操作的过程。对于读操作,数据首先从盘面移动到读写头,再到磁盘内部的缓冲区,最后才通过接口传输到主机hba。对于写操作,数据通过磁盘接口从hba传输到磁盘内部缓冲区,再到读写头,最终从读写头写到盘面上。

读写操作的数据传输速率是以内部和外部传输速率来衡量的,如图2-11所示。

《信息存储与管理(第二版):数字信息的存储、管理和保护》—— 2.7 磁盘驱动器的性能

内部传输速率(internal transfer rate)指的是数据从一个盘面上的单个磁道传输到内部缓冲区的速率。内部传输速率需要将寻道时间和旋转延迟考虑在内。外部传输速率(external transfer rate)指的是数据从接口移动到hba的速率。通常外部传输速率是接口所宣称的速率,比如ata的速率是133mb/s。持续的外部传输速率(实际工作时)一般要低于所宣称的接口速率。

磁盘的i/o控制器的利用率对于i/o响应时间的影响很大。要理解如何影响,我们可以将磁盘看作一个黑盒子,包括2个部分。

队列(queue):用于存放等待i/o控制器处理的i/o请求。

磁盘i/o控制器(disk i/o controller):依次处理队列中的i/o请求。

i/o请求以应用程序生成请求的速率到达控制器。这个速率也称作到达速率(arrival rate)。这些请求暂存在i/o队列中,将由i/o控制器依次进行处理,如图2-12所示。i/o到达速率、队列长度,还有i/o控制器处理每个请求的时间决定着i/o响应时间。如果控制器一直忙碌或处于高利用率状态,队列规模会较大,反应时间也会较长。

《信息存储与管理(第二版):数字信息的存储、管理和保护》—— 2.7 磁盘驱动器的性能

根据磁盘驱动器性能的基本规则,控制器利用率和平均响应时间的关系如下:

平均响应时间(tr)=服务时间(ts)/(1利用率)

其中ts是控制器处理一次i/o所用的时间。

当利用率为达到100%时——也就是i/o控制器饱和时,响应时间接近于无限大。实际上,饱和的部件,或者说瓶颈,迫使i/o请求序列化,这意味着每个i/o请求都必须等待它前面的请求被处理完毕。利用率和响应时间的关系如图2-13所示。

《信息存储与管理(第二版):数字信息的存储、管理和保护》—— 2.7 磁盘驱动器的性能

该图显示,响应时间随着利用率增加呈非线性的变化。当平均队列长度很短时,响应时间一直很快。当队列负载增加时,响应时间也逐渐地增大。当利用率超过70%时,响应时间呈指数增长。因此,对于性能敏感型应用,常规做法是保证磁盘利用率在70%以下。