摘要

固态盘具有高性能、高可靠性、低功耗和重量轻等优势,被认为是下一代主流存储设备.但是现在的文件系统和设备级的I/O调度都是基于传统的旋转磁盘优化的,固态盘的性能优势没有得到充分的利用.针对固态盘,设计实现了MultiQ调度算法,该算法同时考虑了吞吐量和请求平均响应时间,在不降低I/O吞吐量的情况下尽量减少平均响应时间.该算法主要采取3种措施:基于请求地址的分队、基于请求类型的分类和基于请求大小的排队.充分利用了固态盘的并行性,避免读写干扰,降低了平均响应时间.采用MLC和TLC类型的固态盘进行试验,负载采用Iometer和filebench,结果表明MultiQ算法比Linux系统中的4种调度算法在效率上有小幅提升,而平均响应时间大大降低.在Iometer负载的测试中,该算法分别比Noop,Deadline,CFQ和Anticipatory算法在平均响应时间上减少了9.3%,10.2%,19.4%和12.2%.