论文部分内容阅读
随着二级存储设备与主存在传输速度上的差距不断扩大,磁箍I/O逐渐成为影响计算机系统性能的主要因素,甚至是限制系统平均性能的瓶颈。作为操作系统中磁盘缓存的最主要形式,页面缓存(Page-Cache)机制与文件读写执行流程有非常紧密的联系,直接影响着磁盘I/O性能。页面缓存管理是操作系统虚存管理子系统的重要组成部分。
本文以改进磁盘I/O平均性能为目标,以实际系统中出现的一系列I/O问题为着手点,针对操作系统页面缓存提出相应的优化技术,并在Linux操作系统内核中进行了原型实现与实验评价。由于磁盘I/O对服务器系统的影响尤其显著,本文特别针对网络服务器应用对这些优化技术进行了实验测试与分析。
操作系统中页面缓存有三个基本的管理与优化问题:替换,预读,写回。针对这三个基本问题,本文进行了如下三个方面的研究工作:
1.改进的页面替换当系统进行大量的文件读写后,页面缓存空间的过度扩张会导致进程交换现象发生,急剧降低系统中关键应用程序的执行速度。本文设计并实现了交换行为的有效控制接口,保证进程映射页面在未超过预定比例的情况下,不会被换出到磁盘的交换区中。
在观察到文件大小属性对重复访问可能性影响的基础上,本文进一步提出“抵制大文件的页面LRU排序”技术来改进页面替换管理,目的是避免大文件占掘大部分缓存页面而把更有可能被重复访问的小文件换出。简单的模拟实验和严格的web server负载测试都证明该技术对于系统I/O稳定性具有积极意义。
2.前摄的文件预读频繁的缓存不命中所造成的磁盘I/O延迟是制约大数据集Web服务器性能的主要因素。本文针对HTTP连接处理的文件访问特征,提出并实现了“前摄”的文件预读策略—在open()系统调用中启动读操作把文件数据从磁盘读入到页面缓存中。通过响应延迟与吞吐量两个方面的实验测试,这种激进的预取优化能够将HTTP处理响应延迟降低20%~80%,在并发连接数目不高的情况下使服务器磁盘I/O的平均吞吐量获得15%~40%的提高。
3.公平的写回控制本文提出了“公平写回控制”框架,旨在对页面缓存中的“脏”页面提供更好的写回控制,进而改善写性能。针对并发写操作所引起的脏页滞留现象,本文在详细分析Linux文件写回调度算法的基础上,设计并实现了CFW(Completely Fair Writeback)写回调度算法。该算法能够有效解决大文件写回饥饿或写回缓慢问题,从而消除了脏页滞留现象。针对大规模写的进行对正常写操作所造成的影响,本文进一步实现了DWT(Discriminaling Writter Throttling)写抑制机制,以消除Linux 写抑制策略的不公平性。