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

文档序号:9432488阅读:来源:国知局
参数和/或所述运行间隔调整参数,将所述页高速缓冲存储器中的脏数据刷写到磁盘中,这种当准备写入页高速缓冲存储器中的数据大于预设阈值时,自动调整内核参数的方式,保证了刷写进程负载过大时,也能正常的将page cache中的数据刷写到磁盘中。
[0047]优选的,根据所述触发调整参数,将所述页高速缓冲存储器中的脏数据刷写到磁盘中,包括:
[0048]判断所述页高速缓冲存储器中的脏数据占所述页高速缓冲存储器中的比值,是否大于所述触发调整参数的数值;
[0049]若是,则将所述页高速缓冲存储器中的脏数据刷写到磁盘中。
[0050]具体的,跟pdflush相关的内核参数有很多,例如:
[0051]/proc/sys/vm/dirty_background_rat1 和 /proc/sys/vm/dirty_writeback_centisecs。
[0052]在现有技术中,第一个内核参数vm.dirty_background_rat1指定了当文件系统缓存脏页数量达到系统内存百分之十时,就会触发pdflush/flush/kdmfIush等后台回写进程运行,将一定缓存的脏页异步地刷入磁盘中。
[0053]因此,在本实施例中,通过对内核参数进行修改,使系统在没有达到百分之十的时候,就将缓存的脏页异步地刷入磁盘中。
[0054]优选的,在本发明的另一实施例中,根据所述运行间隔调整参数,将所述页高速缓冲存储器中的脏数据刷写到磁盘中,包括:
[0055]以所述运行间隔调整参数的数值为刷写时间间隔,将所述页高速缓冲存储器中的脏数据刷写入到磁盘中。
[0056]具体的,运行间隔调整参数可以为vm.dirty_writeback_centisecs,控制内核的脏数据刷新进程pdflush的运行间隔,系统默认是每两次间隔500ms。当系统有持续大量的数据写磁盘时,将运行间隔调整参数适量调小。具体可以通过sysctl系统调用来修改,可以很好的提高系统性能,降低系统Dirty。
[0057]优选的,在本发明的另一实施例中,若判断准备写入页高速缓冲存储器中的数据大于预设阈值之后,还包括:
[0058]调取强制刷写函数,将每次写入页高速缓冲存储器中的数据,同步刷写到磁盘中。
[0059]具体的,本实施例提供的另一种方法是使用fsync系统调用。Fsync系统调用会强制将每次写入的数据flush到磁盘中,同步内存中所有已修改的文件数据到磁盘中。
[0060]参见图2,本发明实施例提供的一种数据刷写装置,包括:
[0061]判断模块100,用于实时判断准备写入页高速缓冲存储器中的数据是否大于预设阈值;
[0062]若是,则触发第一调整模块200,和/或触发第二调整模块300 ;
[0063]所述第一调整模块用于将触发参数修改为触发调整参数;其中,所述触发调整参数的数值小于所述触发参数的数值;
[0064]所述第二调整模块用于将运行间隔参数修改为运行间隔调整参数;其中,所述运行间隔调整参数的数值小于所述运行间隔参数的数值;
[0065]刷写模块400,用于根据所述触发调整参数和/或所述运行间隔调整参数,将所述页高速缓冲存储器中的脏数据刷写到磁盘中。
[0066]优选的,在本发明的另一实施例中,所述刷写模块包括:
[0067]判断单元,用于判断所述页高速缓冲存储器中的脏数据占所述页高速缓冲存储器中的比值,是否大于所述触发调整参数的数值;
[0068]若是,则触发第一刷写单元,所述第一刷写单元用于将所述页高速缓冲存储器中的脏数据刷写到磁盘中。
[0069]优选的,在本发明的另一实施例中,所述刷写模块包括:
[0070]计时单元,用于以所述运行间隔调整参数的数值为刷写时间间隔,触发第二刷写单元将所述页高速缓冲存储器中的脏数据刷写入到磁盘中。
[0071]优选的,在本发明的另一实施例中,还包括:
[0072]强制刷写模块,用于调取强制刷写函数,将每次写入页高速缓冲存储器中的数据,同步刷写到磁盘中。
[0073]本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
[0074]对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
【主权项】
1.一种数据刷写方法,其特征在于,包括: 实时判断准备写入页高速缓冲存储器中的数据是否大于预设阈值; 若是,则将触发参数修改为触发调整参数;其中,所述触发调整参数的数值小于所述触发参数的数值;和/或, 将运行间隔参数修改为运行间隔调整参数;其中,所述运行间隔调整参数的数值小于所述运行间隔参数的数值; 根据所述触发调整参数和/或所述运行间隔调整参数,将所述页高速缓冲存储器中的脏数据刷写到磁盘中。2.根据权利要求1所述的数据刷写方法,其特征在于,根据所述触发调整参数,将所述页高速缓冲存储器中的脏数据刷写到磁盘中,包括: 判断所述页高速缓冲存储器中的脏数据占所述页高速缓冲存储器中的比值,是否大于所述触发调整参数的数值; 若是,则将所述页高速缓冲存储器中的脏数据刷写到磁盘中。3.根据权利要求1所述的数据刷写方法,其特征在于,根据所述运行间隔调整参数,将所述页高速缓冲存储器中的脏数据刷写到磁盘中,包括: 以所述运行间隔调整参数的数值为刷写时间间隔,将所述页高速缓冲存储器中的脏数据刷写入到磁盘中。4.根据权利要求1所述的数据刷写方法,其特征在于,若判断准备写入页高速缓冲存储器中的数据大于预设阈值之后,还包括: 调取强制刷写函数,将每次写入页高速缓冲存储器中的数据,同步刷写到磁盘中。5.一种数据刷写装置,其特征在于,包括: 判断模块,用于实时判断准备写入页高速缓冲存储器中的数据是否大于预设阈值; 若是,则触发第一调整模块,和/或触发第二调整模块; 所述第一调整模块用于将触发参数修改为触发调整参数;其中,所述触发调整参数的数值小于所述触发参数的数值; 所述第二调整模块用于将运行间隔参数修改为运行间隔调整参数;其中,所述运行间隔调整参数的数值小于所述运行间隔参数的数值; 刷写模块,用于根据所述触发调整参数和/或所述运行间隔调整参数,将所述页高速缓冲存储器中的脏数据刷写到磁盘中。6.根据权利要求5所述的数据刷写装置,其特征在于,所述刷写模块包括: 判断单元,用于判断所述页高速缓冲存储器中的脏数据占所述页高速缓冲存储器中的比值,是否大于所述触发调整参数的数值; 若是,则触发第一刷写单元,所述第一刷写单元用于将所述页高速缓冲存储器中的脏数据刷写到磁盘中。7.根据权利要求5所述的数据刷写装置,其特征在于,所述刷写模块包括: 计时单元,用于以所述运行间隔调整参数的数值为刷写时间间隔,触发第二刷写单元,将所述页高速缓冲存储器中的脏数据刷写入到磁盘中。8.根据权利要求5所述的数据刷写方法,其特征在于,还包括: 强制刷写模块,用于调取强制刷写函数,将每次写入页高速缓冲存储器中的数据,同步 刷写到磁盘中。
【专利摘要】本发明实施例公开了一种数据刷写方法及装置,包括:实时判断准备写入页高速缓冲存储器中的数据是否大于预设阈值;若是,则将触发参数修改为触发调整参数;其中,所述触发调整参数的数值小于所述触发参数的数值;和/或,将运行间隔参数修改为运行间隔调整参数;其中,所述运行间隔调整参数的数值小于所述运行间隔参数的数值;根据所述触发调整参数和/或所述运行间隔调整参数,将所述页高速缓冲存储器中的脏数据刷写到磁盘中,这种当准备写入页高速缓冲存储器中的数据大于预设阈值时,自动调整内核参数的方式,保证了刷写进程负载过大时,也能正常的将page?cache中的数据刷写到磁盘中。
【IPC分类】G06F12/08
【公开号】CN105183667
【申请号】CN201510590801
【发明人】李延彬
【申请人】浪潮(北京)电子信息产业有限公司
【公开日】2015年12月23日
【申请日】2015年9月16日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1