磁盘系统性能优化
磁盘性能的优化可以从导致性能瓶颈的因素下手:
磁盘寻找数据时存在延迟的主导因素有旋转延迟,寻道时间,大数据块读写的情况下长延迟。
现在技术对提高磁盘传输数据率做出了很多的探索,从物理结构上提升和算法寻道优化,还有就是和从内存中预测载入页框的高速缓存的思想一样,在控制器中设置读写缓存区。
物理结构:
磁盘物理结构(经典)
这些年来磁盘内部机械结构的速度相对改进较小,而磁盘片上的磁性表面则达到了较高的位密度。
盘片上每个磁道上的扇区数不再一样,而是外层比内层扇区数要多4%左右。增加了一层环带,每个环带上的磁道有相同数量的扇区。
RAID 廉价磁盘冗余阵列的引入在大容量数据读写方面提高数据率,其核心原理就是对磁盘读写并行。
其实RAID就是很多普通的磁盘,每个磁盘具有独立的驱动器。这些磁盘的寻址方式不妨用逻辑块寻址方式-LBA(Logical Block Addressing)磁盘扇区索引编号从0开始。
划分条带(striping)是RAID中的一个度量单位,每个划分条带拥有N个扇区,这些扇区会把N个扇区轮流写到每个磁盘驱动器上,以实现数据读写的并行。划分条带的索引编号也从0开始,划分条带0有1个扇区,此后索引编号为的划分条带有个扇区,即扇区编号范围。
上述RAID称为0级RAID,虽然实现了并行性,但安全性和可靠性未得到提高。
寻道算法
寻道算法可以缩短寻道时间。驱动器保持着磁道请求列表,磁盘臂调度算法就是在磁道移动上做文章减少寻道过程的总柱面数。
比较经典的就是最短寻道优先SSF和电梯算法。
SSF(最短寻道优先):寻道延迟主导操作时间,SSF的原则是不管请求到来的顺序如何,总是选择距离当前磁道最近的磁道。磁盘驱动程序维持一张请求表。
缺点:远离中部区域的得到的服务很差,公平性和最短响应时间冲突。SSF的选择有失公平。
电梯算法:
显然,电梯算法与我们乘坐电梯的逻辑没有什么不同。需要维持一个额外的数据-方向。
当指定方向上没有请求时,方向取反。
缓冲
高速缓存在控制器中也存在。控制区中比如为读操作设定的高速缓存独立于内存中的高速缓存。当磁道上的一个扇区被请求时,其相邻的扇区也会被读出放到大约2M的高速缓存中。当预测成功后,数据会从控制器高速缓存中直接读出。