一种数据刷写方法及装置的制造方法

文档序号:9432488阅读:625来源:国知局
一种数据刷写方法及装置的制造方法
【技术领域】
[0001]本发明涉及数据刷写技术领域,更具体地说,涉及一种数据刷写方法及装置。
【背景技术】
[0002]当我们在程序中试图将数据写入文件的时候,Iinux系统并不会马上将数据写入disk(磁盘)之中,而是先将它们临时存放在memory (内存)的一块区域,那块区域叫做page cache (页高速缓冲存储器)。我们发现其中2个指标,一个是Cached,另一个是Dirty (脏数据)。如果Cached是309420kB,指的是page cache的大小是309420kB,那么Dirty为20kB指的是有20kB的数据存于page cache中,等待写入disk。当有数据写入文件时,数据会先缓存到page cache中,我们可以认为内存中的这部分数据是系统脏数据。在Linux系统中,有一个专门负责将page cache中的数据flush(刷写)到disk的进程,叫pdf lush。在系统运行任意时刻,都有2-8个pdf lush的守护服务线程在运行。但是,pdflush作为一个程序存在,就有一个负载力的问题。当负载过大,pdflush进程承受不住,无法将page cache中的数据flush到disk上,也就无法保证系统Dirty值维持在可用memory的10 %以下,这种情况持续时间长了,系统就会崩溃。
[0003]因此,如何保证在刷写进程在负载过大时,也能保证正常的将page cache中的数据刷写到磁盘中是现在需要解决的问题。

【发明内容】

[0004]本发明的目的在于提供一种数据刷写方法及装置,以保证刷写进程负载过大时,能正常的将page cache中的数据刷写到磁盘中。
[0005]为实现上述目的,本发明实施例提供了如下技术方案:
[0006]一种数据刷写方法,包括:
[0007]实时判断准备写入页高速缓冲存储器中的数据是否大于预设阈值;
[0008]若是,则将触发参数修改为触发调整参数;其中,所述触发调整参数的数值小于所述触发参数的数值;和/或,
[0009]将运行间隔参数修改为运行间隔调整参数;其中,所述运行间隔调整参数的数值小于所述运行间隔参数的数值;
[0010]根据所述触发调整参数和/或所述运行间隔调整参数,将所述页高速缓冲存储器中的脏数据刷写到磁盘中。
[0011]优选的,根据所述触发调整参数,将所述页高速缓冲存储器中的脏数据刷写到磁盘中,包括:
[0012]判断所述页高速缓冲存储器中的脏数据占所述页高速缓冲存储器中的比值,是否大于所述触发调整参数的数值;
[0013]若是,则将所述页高速缓冲存储器中的脏数据刷写到磁盘中。
[0014]优选的,根据所述运行间隔调整参数,将所述页高速缓冲存储器中的脏数据刷写到磁盘中,包括:
[0015]以所述运行间隔调整参数的数值为刷写时间间隔,将所述页高速缓冲存储器中的脏数据刷写入到磁盘中。
[0016]优选的,若判断准备写入页高速缓冲存储器中的数据大于预设阈值之后,还包括:
[0017]调取强制刷写函数,将每次写入页高速缓冲存储器中的数据,同步刷写到磁盘中。
[0018]一种数据刷写装置,包括:
[0019]判断模块,用于实时判断准备写入页高速缓冲存储器中的数据是否大于预设阈值;
[0020]若是,则触发第一调整模块,和/或触发第二调整模块;
[0021]所述第一调整模块用于将触发参数修改为触发调整参数;其中,所述触发调整参数的数值小于所述触发参数的数值;
[0022]所述第二调整模块用于将运行间隔参数修改为运行间隔调整参数;其中,所述运行间隔调整参数的数值小于所述运行间隔参数的数值;
[0023]刷写模块,用于根据所述触发调整参数和/或所述运行间隔调整参数,将所述页高速缓冲存储器中的脏数据刷写到磁盘中。
[0024]优选的,所述刷写模块包括:
[0025]判断单元,用于判断所述页高速缓冲存储器中的脏数据占所述页高速缓冲存储器中的比值,是否大于所述触发调整参数的数值;
[0026]若是,则触发第一刷写单元,所述第一刷写单元用于将所述页高速缓冲存储器中的脏数据刷写到磁盘中。
[0027]优选的,所述刷写模块包括:
[0028]计时单元,用于以所述运行间隔调整参数的数值为刷写时间间隔,触发第二刷写单元,将所述页高速缓冲存储器中的脏数据刷写入到磁盘中。
[0029]优选的,还包括:
[0030]强制刷写模块,用于调取强制刷写函数,将每次写入页高速缓冲存储器中的数据,同步刷写到磁盘中。
[0031]通过以上方案可知,本发明实施例提供的一种数据刷写方法及装置,包括:实时判断准备写入页高速缓冲存储器中的数据是否大于预设阈值;若是,则将触发参数修改为触发调整参数;其中,所述触发调整参数的数值小于所述触发参数的数值;和/或,将运行间隔参数修改为运行间隔调整参数;其中,所述运行间隔调整参数的数值小于所述运行间隔参数的数值;根据所述触发调整参数和/或所述运行间隔调整参数,将所述页高速缓冲存储器中的脏数据刷写到磁盘中,这种当准备写入页高速缓冲存储器中的数据大于预设阈值时,自动调整内核参数的方式,保证了刷写进程负载过大时,也能正常的将page cache中的数据刷写到磁盘中。
【附图说明】
[0032]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0033]图1为本发明实施例公开的一种数据刷写方法流程图;
[0034]图2为本发明实施例公开的一种数据刷写装置结构示意图。
【具体实施方式】
[0035]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0036]本发明实施例公开了一种数据刷写方法及装置,以保证刷写进程负载过大时,能正常的将page cache中的数据刷写到磁盘中。
[0037]参见图1,本发明实施例提供的一种数据刷写方法,包括:
[0038]S101、实时判断准备写入页高速缓冲存储器中的数据是否大于预设阈值;
[0039]若是,则执行S102、将触发参数修改为触发调整参数;其中,所述触发调整参数的数值小于所述触发参数的数值;和/或,
[0040]具体的,触发参数的数值代表页高速缓冲存储器中的脏数据占所述页高速缓冲存储器中的比值,若参数值越大,则表示在页高速缓冲存储器中的脏数据越多。
[0041]S103、将运行间隔参数修改为运行间隔调整参数;其中,所述运行间隔调整参数的数值小于所述运行间隔参数的数值;
[0042]具体的,运行间隔参数的数值代表多长时间为间隔,将页高速缓冲存储器中的脏数据刷写到磁盘中。其数值越大,则代表单位时间内刷写次数越小。
[0043]S104、根据所述触发调整参数和/或所述运行间隔调整参数,将所述页高速缓冲存储器中的脏数据刷写到磁盘中。
[0044]具体的,处了本实施例中的方法,还可以通过人为强制将page cache中的数据flush到disk,不让系统Dirty达到40%的阈值。
[0045]需要强调的是,在图1中,执行步骤S102后继续执行S103,但是在实际应用中,不限定执行S102及S103的顺序,并且在执行S102后,可以选择是否执行S103。即S102和S103这两个步骤,可以全部执行,也可以只执行其中一个,可以根据不同的情况进行决定。
[0046]本发明实施例提供的一种数据刷写方法,包括:实时判断准备写入页高速缓冲存储器中的数据是否大于预设阈值;若是,则将触发参数修改为触发调整参数;其中,所述触发调整参数的数值小于所述触发参数的数值;和/或,将运行间隔参数修改为运行间隔调整参数;其中,所述运行间隔调整参数的数值小于所述运行间隔参数的数值;根据所述触发调整
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1