[发明专利]一种文件系统页缓存回写方法、系统、装置及存储介质有效
申请号: | 201710937909.3 | 申请日: | 2017-09-26 |
公开(公告)号: | CN107590287B | 公开(公告)日: | 2021-03-02 |
发明(设计)人: | 李养兆 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
主分类号: | G06F16/172 | 分类号: | G06F16/172;G06F12/02;G06F12/0866 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 罗满 |
地址: | 215100 江苏省苏州市吴*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 文件系统 缓存 方法 系统 装置 存储 介质 | ||
本申请公开了一种文件系统页缓存回写方法、系统、装置及存储介质,该方法包括:获取文件系统打开的文件的平均缓存大小;获取当前文件的脏页数;利用所述平均缓存大小和预设的脏页比例阈值,确定脏页数量阈值;判断所述脏页数是否超过所述脏页数量阈值,如果是,则强制回写当前文件的脏页。本发明由文件系统打开的文件的平均缓存大小和预设的脏页比例阈值,确定适合当前文件使用情况的脏页数量阈值,然后判断当前文件的脏页数是否超过脏页数量阈值来确定是否对当前文件的脏页进行回写。由于每个文件进行强制回写的时间点不同,因此脏页回写任务被均匀分散到多个时间点执行,避免了文件系统整体的写性能大幅波动,进而提高了文件系统的写性能。
技术领域
本发明涉及系统缓存回写领域,特别涉及一种文件系统页缓存回写方法、系统、装置及存储介质。
背景技术
文件系统处理缓存写请求时,先写入页缓存(Page Cache),然后在合适的时间点回写到磁盘。目前,文件系统在以下两种情况下会回写脏页(Dirty Page),其中,脏页即为数据被修改的页缓存。
具体地,情况一为定时回写,内核定时启动回写线程,由回写线程将被标记为脏页的时间超过时间阈值的脏页回写到磁盘。
情况二为定量回写,在缓存写操作时,当发现脏页的比例超过初始比例阈值(vm.dirty_background_ratio)时,启动后台回写线程,如果此时写入速度小于后台回写速度,脏页比例将会下降,而如果写入速度大于后台回写速度,脏页持续增加,脏页比例将会继续上升,当脏页比例超过上限比例阈值(vm.dirty_ratio)时,写操作会被阻塞,文件系统将会强制执行内存回收,其中,内存回收大部分为内存回写,其余部分为内存交换和释放,以保证内存中不会存在过量脏页。
参见图1与图2所示,图1为现有技术中脏页量变化示意图,图2为现有技术中文件系统性能变化示意图,当应用写入量巨大时,脏页数量随着时间持续增长,应用线程被回写阻塞,造成文件系统性能大幅波动导致性能下降。一般情况下,此时应用线程可以主动调用fsync函数进行强制回写来改善系统性能,但是如果应用来自第三方,则不能修改源代码,无法使用该方法。
发明内容
有鉴于此,本发明的目的在于提供一种文件系统页缓存回写方法、系统、装置及存储介质,能够避免回写页缓存导致的文件系统的性能大幅波动,进而提高文件系统的写性能。其具体方案如下:
一种文件系统页缓存回写方法,包括:
获取文件系统打开的文件的平均缓存大小;
获取当前文件的脏页数;
利用所述平均缓存大小和预设的脏页比例阈值,确定脏页数量阈值;
判断所述脏页数是否超过所述脏页数量阈值,如果是,则强制回写当前文件的脏页。
优选地,所述获取文件系统打开的文件的平均缓存大小的过程,包括:
获取所述文件系统打开的文件数量;
利用所述文件系统的可用内存大小除以所述文件数量,得到所述平均缓存大小。
优选地,当所述脏页数不超过所述脏页数量阈值时,进一步包括:
将当前写请求写入所述文件系统的页缓存,并更新当前文件的脏页数。
优选地,所述利用所述平均缓存大小和预设的脏页比例阈值,确定脏页数量阈值的过程,包括:
利用所述平均缓存大小乘以所述脏页比例阈值,得到所述脏页数量阈值。
相应地,本发明还提供一种文件系统页缓存回写系统,包括:
平均缓存获取模块,用于获取文件系统打开的文件的平均缓存大小;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710937909.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种塔器焊接结构
- 下一篇:经济环保型高品质焊芯用钢