一种数据刷写方法及装置.pdf

上传人:柴****2 文档编号:6355279 上传时间:2019-06-03 格式:PDF 页数:9 大小:508.36KB
返回 下载 相关 举报
摘要
申请专利号:

CN201510590801.2

申请日:

2015.09.16

公开号:

CN105183667A

公开日:

2015.12.23

当前法律状态:

撤回

有效性:

无权

法律详情:

发明专利申请公布后的视为撤回IPC(主分类):G06F 12/08申请公布日:20151223|||实质审查的生效IPC(主分类):G06F 12/08申请日:20150916|||公开

IPC分类号:

G06F12/08

主分类号:

G06F12/08

申请人:

浪潮(北京)电子信息产业有限公司

发明人:

李延彬

地址:

100085 北京市海淀区上地信息路2号2-1号C栋1层

优先权:

专利代理机构:

北京集佳知识产权代理有限公司 11227

代理人:

罗满

PDF下载: PDF下载
内容摘要

本发明实施例公开了一种数据刷写方法及装置,包括:实时判断准备写入页高速缓冲存储器中的数据是否大于预设阈值;若是,则将触发参数修改为触发调整参数;其中,所述触发调整参数的数值小于所述触发参数的数值;和/或,将运行间隔参数修改为运行间隔调整参数;其中,所述运行间隔调整参数的数值小于所述运行间隔参数的数值;根据所述触发调整参数和/或所述运行间隔调整参数,将所述页高速缓冲存储器中的脏数据刷写到磁盘中,这种当准备写入页高速缓冲存储器中的数据大于预设阈值时,自动调整内核参数的方式,保证了刷写进程负载过大时,也能正常的将page cache中的数据刷写到磁盘中。

权利要求书

权利要求书
1.  一种数据刷写方法,其特征在于,包括:
实时判断准备写入页高速缓冲存储器中的数据是否大于预设阈值;
若是,则将触发参数修改为触发调整参数;其中,所述触发调整参数的数值小于所述触发参数的数值;和/或,
将运行间隔参数修改为运行间隔调整参数;其中,所述运行间隔调整参数的数值小于所述运行间隔参数的数值;
根据所述触发调整参数和/或所述运行间隔调整参数,将所述页高速缓冲存储器中的脏数据刷写到磁盘中。

2.  根据权利要求1所述的数据刷写方法,其特征在于,根据所述触发调整参数,将所述页高速缓冲存储器中的脏数据刷写到磁盘中,包括:
判断所述页高速缓冲存储器中的脏数据占所述页高速缓冲存储器中的比值,是否大于所述触发调整参数的数值;
若是,则将所述页高速缓冲存储器中的脏数据刷写到磁盘中。

3.  根据权利要求1所述的数据刷写方法,其特征在于,根据所述运行间隔调整参数,将所述页高速缓冲存储器中的脏数据刷写到磁盘中,包括:
以所述运行间隔调整参数的数值为刷写时间间隔,将所述页高速缓冲存储器中的脏数据刷写入到磁盘中。

4.  根据权利要求1所述的数据刷写方法,其特征在于,若判断准备写入页高速缓冲存储器中的数据大于预设阈值之后,还包括:
调取强制刷写函数,将每次写入页高速缓冲存储器中的数据,同步刷写到磁盘中。

5.  一种数据刷写装置,其特征在于,包括:
判断模块,用于实时判断准备写入页高速缓冲存储器中的数据是否大于预设阈值;
若是,则触发第一调整模块,和/或触发第二调整模块;
所述第一调整模块用于将触发参数修改为触发调整参数;其中,所述触发调整参数的数值小于所述触发参数的数值;
所述第二调整模块用于将运行间隔参数修改为运行间隔调整参数;其中,所述运行间隔调整参数的数值小于所述运行间隔参数的数值;
刷写模块,用于根据所述触发调整参数和/或所述运行间隔调整参数,将所述页高速缓冲存储器中的脏数据刷写到磁盘中。

6.  根据权利要求5所述的数据刷写装置,其特征在于,所述刷写模块包括:
判断单元,用于判断所述页高速缓冲存储器中的脏数据占所述页高速缓冲存储器中的比值,是否大于所述触发调整参数的数值;
若是,则触发第一刷写单元,所述第一刷写单元用于将所述页高速缓冲存储器中的脏数据刷写到磁盘中。

7.  根据权利要求5所述的数据刷写装置,其特征在于,所述刷写模块包括:
计时单元,用于以所述运行间隔调整参数的数值为刷写时间间隔,触发第二刷写单元,将所述页高速缓冲存储器中的脏数据刷写入到磁盘中。

8.  根据权利要求5所述的数据刷写方法,其特征在于,还包括:
强制刷写模块,用于调取强制刷写函数,将每次写入页高速缓冲存储器中的数据,同步刷写到磁盘中。

说明书

说明书一种数据刷写方法及装置
技术领域
本发明涉及数据刷写技术领域,更具体地说,涉及一种数据刷写方法及装置。
背景技术
当我们在程序中试图将数据写入文件的时候,linux系统并不会马上将数据写入disk(磁盘)之中,而是先将它们临时存放在memory(内存)的一块区域,那块区域叫做pagecache(页高速缓冲存储器)。我们发现其中2个指标,一个是Cached,另一个是Dirty(脏数据)。如果Cached是309420kB,指的是pagecache的大小是309420kB,那么Dirty为20kB指的是有20kB的数据存于pagecache中,等待写入disk。当有数据写入文件时,数据会先缓存到pagecache中,我们可以认为内存中的这部分数据是系统脏数据。在Linux系统中,有一个专门负责将pagecache中的数据flush(刷写)到disk的进程,叫pdflush。在系统运行任意时刻,都有2-8个pdflush的守护服务线程在运行。但是,pdflush作为一个程序存在,就有一个负载力的问题。当负载过大,pdflush进程承受不住,无法将pagecache中的数据flush到disk上,也就无法保证系统Dirty值维持在可用memory的10%以下,这种情况持续时间长了,系统就会崩溃。
因此,如何保证在刷写进程在负载过大时,也能保证正常的将pagecache中的数据刷写到磁盘中是现在需要解决的问题。
发明内容
本发明的目的在于提供一种数据刷写方法及装置,以保证刷写进程负载过大时,能正常的将pagecache中的数据刷写到磁盘中。
为实现上述目的,本发明实施例提供了如下技术方案:
一种数据刷写方法,包括:
实时判断准备写入页高速缓冲存储器中的数据是否大于预设阈值;
若是,则将触发参数修改为触发调整参数;其中,所述触发调整参数的数值小于所述触发参数的数值;和/或,
将运行间隔参数修改为运行间隔调整参数;其中,所述运行间隔调整参数的数值小于所述运行间隔参数的数值;
根据所述触发调整参数和/或所述运行间隔调整参数,将所述页高速缓冲存储器中的脏数据刷写到磁盘中。
优选的,根据所述触发调整参数,将所述页高速缓冲存储器中的脏数据刷写到磁盘中,包括:
判断所述页高速缓冲存储器中的脏数据占所述页高速缓冲存储器中的比值,是否大于所述触发调整参数的数值;
若是,则将所述页高速缓冲存储器中的脏数据刷写到磁盘中。
优选的,根据所述运行间隔调整参数,将所述页高速缓冲存储器中的脏数据刷写到磁盘中,包括:
以所述运行间隔调整参数的数值为刷写时间间隔,将所述页高速缓冲存储器中的脏数据刷写入到磁盘中。
优选的,若判断准备写入页高速缓冲存储器中的数据大于预设阈值之后,还包括:
调取强制刷写函数,将每次写入页高速缓冲存储器中的数据,同步刷写到磁盘中。
一种数据刷写装置,包括:
判断模块,用于实时判断准备写入页高速缓冲存储器中的数据是否大于预设阈值;
若是,则触发第一调整模块,和/或触发第二调整模块;
所述第一调整模块用于将触发参数修改为触发调整参数;其中,所述触发调整参数的数值小于所述触发参数的数值;
所述第二调整模块用于将运行间隔参数修改为运行间隔调整参数;其中,所述运行间隔调整参数的数值小于所述运行间隔参数的数值;
刷写模块,用于根据所述触发调整参数和/或所述运行间隔调整参数,将所述页高速缓冲存储器中的脏数据刷写到磁盘中。
优选的,所述刷写模块包括:
判断单元,用于判断所述页高速缓冲存储器中的脏数据占所述页高速缓冲存储器中的比值,是否大于所述触发调整参数的数值;
若是,则触发第一刷写单元,所述第一刷写单元用于将所述页高速缓冲存储器中的脏数据刷写到磁盘中。
优选的,所述刷写模块包括:
计时单元,用于以所述运行间隔调整参数的数值为刷写时间间隔,触发第二刷写单元,将所述页高速缓冲存储器中的脏数据刷写入到磁盘中。
优选的,还包括:
强制刷写模块,用于调取强制刷写函数,将每次写入页高速缓冲存储器中的数据,同步刷写到磁盘中。
通过以上方案可知,本发明实施例提供的一种数据刷写方法及装置,包括:实时判断准备写入页高速缓冲存储器中的数据是否大于预设阈值;若是,则将触发参数修改为触发调整参数;其中,所述触发调整参数的数值小于所述触发参数的数值;和/或,将运行间隔参数修改为运行间隔调整参数;其中,所述运行间隔调整参数的数值小于所述运行间隔参数的数值;根据所述触发调整参数和/或所述运行间隔调整参数,将所述页高速缓冲存储器中的脏数据刷写到磁盘中,这种当准备写入页高速缓冲存储器中的数据大于预设阈值时,自动调整内核参数的方式,保证了刷写进程负载过大时,也能正常的将pagecache中的数据刷写到磁盘中。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的一种数据刷写方法流程图;
图2为本发明实施例公开的一种数据刷写装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种数据刷写方法及装置,以保证刷写进程负载过大时,能正常的将pagecache中的数据刷写到磁盘中。
参见图1,本发明实施例提供的一种数据刷写方法,包括:
S101、实时判断准备写入页高速缓冲存储器中的数据是否大于预设阈值;
若是,则执行S102、将触发参数修改为触发调整参数;其中,所述触发调整参数的数值小于所述触发参数的数值;和/或,
具体的,触发参数的数值代表页高速缓冲存储器中的脏数据占所述页高速缓冲存储器中的比值,若参数值越大,则表示在页高速缓冲存储器中的脏数据越多。
S103、将运行间隔参数修改为运行间隔调整参数;其中,所述运行间隔调整参数的数值小于所述运行间隔参数的数值;
具体的,运行间隔参数的数值代表多长时间为间隔,将页高速缓冲存储器中的脏数据刷写到磁盘中。其数值越大,则代表单位时间内刷写次数越小。
S104、根据所述触发调整参数和/或所述运行间隔调整参数,将所述页高速缓冲存储器中的脏数据刷写到磁盘中。
具体的,处了本实施例中的方法,还可以通过人为强制将pagecache中的数据flush到disk,不让系统Dirty达到40%的阈值。
需要强调的是,在图1中,执行步骤S102后继续执行S103,但是在实际应用中,不限定执行S102及S103的顺序,并且在执行S102后,可以选择是否执行S103。即S102和S103这两个步骤,可以全部执行,也可以只执行其中一个,可以根据不同的情况进行决定。
本发明实施例提供的一种数据刷写方法,包括:实时判断准备写入页高速缓冲存储器中的数据是否大于预设阈值;若是,则将触发参数修改为触发调整参数;其中,所述触发调整参数的数值小于所述触发参数的数值;和/或, 将运行间隔参数修改为运行间隔调整参数;其中,所述运行间隔调整参数的数值小于所述运行间隔参数的数值;根据所述触发调整参数和/或所述运行间隔调整参数,将所述页高速缓冲存储器中的脏数据刷写到磁盘中,这种当准备写入页高速缓冲存储器中的数据大于预设阈值时,自动调整内核参数的方式,保证了刷写进程负载过大时,也能正常的将pagecache中的数据刷写到磁盘中。
优选的,根据所述触发调整参数,将所述页高速缓冲存储器中的脏数据刷写到磁盘中,包括:
判断所述页高速缓冲存储器中的脏数据占所述页高速缓冲存储器中的比值,是否大于所述触发调整参数的数值;
若是,则将所述页高速缓冲存储器中的脏数据刷写到磁盘中。
具体的,跟pdflush相关的内核参数有很多,例如:
/proc/sys/vm/dirty_background_ratio和/proc/sys/vm/dirty_writeback_centisecs。
在现有技术中,第一个内核参数vm.dirty_background_ratio指定了当文件系统缓存脏页数量达到系统内存百分之十时,就会触发pdflush/flush/kdmflush等后台回写进程运行,将一定缓存的脏页异步地刷入磁盘中。
因此,在本实施例中,通过对内核参数进行修改,使系统在没有达到百分之十的时候,就将缓存的脏页异步地刷入磁盘中。
优选的,在本发明的另一实施例中,根据所述运行间隔调整参数,将所述页高速缓冲存储器中的脏数据刷写到磁盘中,包括:
以所述运行间隔调整参数的数值为刷写时间间隔,将所述页高速缓冲存储器中的脏数据刷写入到磁盘中。
具体的,运行间隔调整参数可以为vm.dirty_writeback_centisecs,控制内核的脏数据刷新进程pdflush的运行间隔,系统默认是每两次间隔500ms。当系统有持续大量的数据写磁盘时,将运行间隔调整参数适量调小。具体可以通过sysctl系统调用来修改,可以很好的提高系统性能,降低系统Dirty。
优选的,在本发明的另一实施例中,若判断准备写入页高速缓冲存储器中的数据大于预设阈值之后,还包括:
调取强制刷写函数,将每次写入页高速缓冲存储器中的数据,同步刷写到磁盘中。
具体的,本实施例提供的另一种方法是使用fsync系统调用。Fsync系统调用会强制将每次写入的数据flush到磁盘中,同步内存中所有已修改的文件数据到磁盘中。
参见图2,本发明实施例提供的一种数据刷写装置,包括:
判断模块100,用于实时判断准备写入页高速缓冲存储器中的数据是否大于预设阈值;
若是,则触发第一调整模块200,和/或触发第二调整模块300;
所述第一调整模块用于将触发参数修改为触发调整参数;其中,所述触发调整参数的数值小于所述触发参数的数值;
所述第二调整模块用于将运行间隔参数修改为运行间隔调整参数;其中,所述运行间隔调整参数的数值小于所述运行间隔参数的数值;
刷写模块400,用于根据所述触发调整参数和/或所述运行间隔调整参数,将所述页高速缓冲存储器中的脏数据刷写到磁盘中。
优选的,在本发明的另一实施例中,所述刷写模块包括:
判断单元,用于判断所述页高速缓冲存储器中的脏数据占所述页高速缓冲存储器中的比值,是否大于所述触发调整参数的数值;
若是,则触发第一刷写单元,所述第一刷写单元用于将所述页高速缓冲存储器中的脏数据刷写到磁盘中。
优选的,在本发明的另一实施例中,所述刷写模块包括:
计时单元,用于以所述运行间隔调整参数的数值为刷写时间间隔,触发第二刷写单元将所述页高速缓冲存储器中的脏数据刷写入到磁盘中。
优选的,在本发明的另一实施例中,还包括:
强制刷写模块,用于调取强制刷写函数,将每次写入页高速缓冲存储器中的数据,同步刷写到磁盘中。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

一种数据刷写方法及装置.pdf_第1页
第1页 / 共9页
一种数据刷写方法及装置.pdf_第2页
第2页 / 共9页
一种数据刷写方法及装置.pdf_第3页
第3页 / 共9页
点击查看更多>>
资源描述

《一种数据刷写方法及装置.pdf》由会员分享,可在线阅读,更多相关《一种数据刷写方法及装置.pdf(9页珍藏版)》请在专利查询网上搜索。

本发明实施例公开了一种数据刷写方法及装置,包括:实时判断准备写入页高速缓冲存储器中的数据是否大于预设阈值;若是,则将触发参数修改为触发调整参数;其中,所述触发调整参数的数值小于所述触发参数的数值;和/或,将运行间隔参数修改为运行间隔调整参数;其中,所述运行间隔调整参数的数值小于所述运行间隔参数的数值;根据所述触发调整参数和/或所述运行间隔调整参数,将所述页高速缓冲存储器中的脏数据刷写到磁盘中,这种。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1