[发明专利]一种Linux下针对机械硬盘的预读方法有效
申请号: | 201110420003.7 | 申请日: | 2011-12-15 |
公开(公告)号: | CN102520884A | 公开(公告)日: | 2012-06-27 |
发明(设计)人: | 张福新;吴少刚;陈杰 | 申请(专利权)人: | 江苏中科梦兰电子科技有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 南京苏高专利商标事务所(普通合伙) 32204 | 代理人: | 柏尚春 |
地址: | 215500 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 linux 针对 机械 硬盘 方法 | ||
技术领域
本发明涉及一种Linux下针对机械硬盘的预读方法。
背景技术
随着软件越来越复杂化,软件的启动速度也越来越慢,其通常主要因素源自启动时刻软件对磁盘的随机访问。
目前常见的机械硬盘,虽然有着不错的顺序访问性能,然而其随机访问性能却不高。
于是一些预读技术就被提出,来优化软件的启动速度。预读主要是在磁盘空闲间隙,按照磁盘顺序,提前读取接下来要访问的内容。
预读主要包含两个任务——“收集需要预读的文件片断”和“预读文件片断”。
目前在Linux上,已有预读方法如下:
1.收集需要预读的文件片断:在软件启动阶段采用fanotify/inotify系统调用来监视哪些文件被打开。启动完成后,再依次对前述打开过的文件使用mincore系统调用,来获知文件的哪些部分在内存中,在内存中的部分被认为是启动过程中被读取的,从而被记录下来,形成类似“文件路径:区间1,区间2,...”的一条记录。
最后将上述记录按照所在磁盘位置排列,写入到一个文件中。
2.预读文件片断:在软件启动一开始,预读程序根据上点生成的记录文件,逐个打开文件并通过readahead/posix_fadvise系统调用,来指示操作系统内核进行预读。
然而上述预读方法表现并不尽如人意。
首先,预读操作按照了磁盘序,固然提高了磁盘效率,却往往会干扰正常的读访问。例如某软件启动时,依次访问了四个文件片段:a,b,c,d,而其磁盘顺序为d,c,b,a。这样在启动时刻,按照磁盘序预读的d并不是立即需要的,反而与启动的软件竞争磁盘带宽。
其次,预读仅仅涵盖了启动时刻的文件访问,却忽略了对文件系统元数据的访问。在实测中,启动时刻相当一部分磁盘访问对应到了文件系统的元数据。
发明内容
本发明所要解决的技术问题是提供一种Linux下针对机械硬盘的预读方法,该方法可以有效改善机械硬盘上的软件启动速度。
为了解决上述的技术问题,本发明的一种Linux下针对机械硬盘的预读方法,包括步骤:
1)收集需要预读的文件片断。
无缝记录软件正常启动过程中的磁盘读访问。与已有方案相比,记录对象为磁盘块,从而能记录对文件系统元数据的读取;每次读取块的顺序和块号都将被记录。
启动完成后,按照其磁盘块被访问的顺序,写入到预读镜像。与已有方案相比,写入的是预读内容的一个副本,而非引用。
2)预读文件片断。
软件启动时刻,将优先尝试从预读镜像中读取所需块。与已有方案相比,由于预读镜像磁盘块的顺序与访问顺序一致,从而既满足了最大利用机械磁盘特性,又能避免预读非急需内容,干扰正常启动。
3)维持预读镜像的有效性。
定期同步预读镜像中的磁盘块副本。由于软件更新等原因造成的原件更新,将被发现并更新到镜像中的磁盘块副本中。
采用本发明所提出的预读方法,有效地把软件启动时刻的磁盘随机读访问转化为顺序读取,最大利用机械磁盘特性。同时预读顺序与正常访问顺序一致,有效解决了原有预读干扰问题。另外,对于文件系统元数据的读访问,也能进行预读。
附图说明
下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1是本发明“收集需要预读的文件片断”任务在软件启动阶段的工作流程图;
图2是本发明“收集需要预读的文件片断”任务在软件启动完成后的工作流程图;
图3是本发明“预读文件片断”任务的工作流程图;
图4是本发明“维持预读镜像的有效性”任务的工作流程图;
具体实施方式
本发明实现使用了Linux内核的LVM子系统,LVM子系统能够将多个磁盘或镜像文件按照不同目标需求,组成一个虚拟的磁盘。
在本发明中,需要为LVM子系统增加一个readahead目标,该目标下,预读镜像与机械磁盘组成一个虚拟的磁盘。readahead目标对预读的三个任务实现如下:
1)收集需要预读的文件片断:在软件启动阶段,对磁盘块的读请求被依次记录到一块内存区域。图1显示了这个工作流。
在启动完成后,通知readahead目标,生成预读镜像。图2显示了这个工作流,即根据先前记录,依次从机械磁盘上读取磁盘块填充到预读镜像。预读镜像是启动时读取的磁盘块集合的一个副本,按照读取的顺序排列。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江苏中科梦兰电子科技有限公司,未经江苏中科梦兰电子科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110420003.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:滤水容器罩盖
- 下一篇:一种社区人口安防监控系统