CN105183667A - 一种数据刷写方法及装置 - Google Patents
一种数据刷写方法及装置 Download PDFInfo
- Publication number
- CN105183667A CN105183667A CN201510590801.2A CN201510590801A CN105183667A CN 105183667 A CN105183667 A CN 105183667A CN 201510590801 A CN201510590801 A CN 201510590801A CN 105183667 A CN105183667 A CN 105183667A
- Authority
- CN
- China
- Prior art keywords
- write
- chinese ink
- brush dipped
- data
- cache memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明实施例公开了一种数据刷写方法及装置,包括:实时判断准备写入页高速缓冲存储器中的数据是否大于预设阈值;若是,则将触发参数修改为触发调整参数;其中,所述触发调整参数的数值小于所述触发参数的数值;和/或,将运行间隔参数修改为运行间隔调整参数;其中,所述运行间隔调整参数的数值小于所述运行间隔参数的数值;根据所述触发调整参数和/或所述运行间隔调整参数,将所述页高速缓冲存储器中的脏数据刷写到磁盘中,这种当准备写入页高速缓冲存储器中的数据大于预设阈值时,自动调整内核参数的方式,保证了刷写进程负载过大时,也能正常的将page?cache中的数据刷写到磁盘中。
Description
技术领域
本发明涉及数据刷写技术领域,更具体地说,涉及一种数据刷写方法及装置。
背景技术
当我们在程序中试图将数据写入文件的时候,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,用于根据所述触发调整参数和/或所述运行间隔调整参数,将所述页高速缓冲存储器中的脏数据刷写到磁盘中。
优选的,在本发明的另一实施例中,所述刷写模块包括:
判断单元,用于判断所述页高速缓冲存储器中的脏数据占所述页高速缓冲存储器中的比值,是否大于所述触发调整参数的数值;
若是,则触发第一刷写单元,所述第一刷写单元用于将所述页高速缓冲存储器中的脏数据刷写到磁盘中。
优选的,在本发明的另一实施例中,所述刷写模块包括:
计时单元,用于以所述运行间隔调整参数的数值为刷写时间间隔,触发第二刷写单元将所述页高速缓冲存储器中的脏数据刷写入到磁盘中。
优选的,在本发明的另一实施例中,还包括:
强制刷写模块,用于调取强制刷写函数,将每次写入页高速缓冲存储器中的数据,同步刷写到磁盘中。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (8)
1.一种数据刷写方法,其特征在于,包括:
实时判断准备写入页高速缓冲存储器中的数据是否大于预设阈值;
若是,则将触发参数修改为触发调整参数;其中,所述触发调整参数的数值小于所述触发参数的数值;和/或,
将运行间隔参数修改为运行间隔调整参数;其中,所述运行间隔调整参数的数值小于所述运行间隔参数的数值;
根据所述触发调整参数和/或所述运行间隔调整参数,将所述页高速缓冲存储器中的脏数据刷写到磁盘中。
2.根据权利要求1所述的数据刷写方法,其特征在于,根据所述触发调整参数,将所述页高速缓冲存储器中的脏数据刷写到磁盘中,包括:
判断所述页高速缓冲存储器中的脏数据占所述页高速缓冲存储器中的比值,是否大于所述触发调整参数的数值;
若是,则将所述页高速缓冲存储器中的脏数据刷写到磁盘中。
3.根据权利要求1所述的数据刷写方法,其特征在于,根据所述运行间隔调整参数,将所述页高速缓冲存储器中的脏数据刷写到磁盘中,包括:
以所述运行间隔调整参数的数值为刷写时间间隔,将所述页高速缓冲存储器中的脏数据刷写入到磁盘中。
4.根据权利要求1所述的数据刷写方法,其特征在于,若判断准备写入页高速缓冲存储器中的数据大于预设阈值之后,还包括:
调取强制刷写函数,将每次写入页高速缓冲存储器中的数据,同步刷写到磁盘中。
5.一种数据刷写装置,其特征在于,包括:
判断模块,用于实时判断准备写入页高速缓冲存储器中的数据是否大于预设阈值;
若是,则触发第一调整模块,和/或触发第二调整模块;
所述第一调整模块用于将触发参数修改为触发调整参数;其中,所述触发调整参数的数值小于所述触发参数的数值;
所述第二调整模块用于将运行间隔参数修改为运行间隔调整参数;其中,所述运行间隔调整参数的数值小于所述运行间隔参数的数值;
刷写模块,用于根据所述触发调整参数和/或所述运行间隔调整参数,将所述页高速缓冲存储器中的脏数据刷写到磁盘中。
6.根据权利要求5所述的数据刷写装置,其特征在于,所述刷写模块包括:
判断单元,用于判断所述页高速缓冲存储器中的脏数据占所述页高速缓冲存储器中的比值,是否大于所述触发调整参数的数值;
若是,则触发第一刷写单元,所述第一刷写单元用于将所述页高速缓冲存储器中的脏数据刷写到磁盘中。
7.根据权利要求5所述的数据刷写装置,其特征在于,所述刷写模块包括:
计时单元,用于以所述运行间隔调整参数的数值为刷写时间间隔,触发第二刷写单元,将所述页高速缓冲存储器中的脏数据刷写入到磁盘中。
8.根据权利要求5所述的数据刷写方法,其特征在于,还包括:
强制刷写模块,用于调取强制刷写函数,将每次写入页高速缓冲存储器中的数据,同步刷写到磁盘中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510590801.2A CN105183667A (zh) | 2015-09-16 | 2015-09-16 | 一种数据刷写方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510590801.2A CN105183667A (zh) | 2015-09-16 | 2015-09-16 | 一种数据刷写方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105183667A true CN105183667A (zh) | 2015-12-23 |
Family
ID=54905757
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510590801.2A Pending CN105183667A (zh) | 2015-09-16 | 2015-09-16 | 一种数据刷写方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105183667A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105740170A (zh) * | 2016-01-22 | 2016-07-06 | 浪潮(北京)电子信息产业有限公司 | 一种缓存脏页刷写方法及装置 |
CN109960686A (zh) * | 2019-03-26 | 2019-07-02 | 北京百度网讯科技有限公司 | 数据库的日志处理方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103823765A (zh) * | 2014-02-26 | 2014-05-28 | 浙江宇视科技有限公司 | 一种动态调整缓存刷新策略的方法和装置 |
CN104090731A (zh) * | 2014-07-09 | 2014-10-08 | 浙江宇视科技有限公司 | 一种自动进行Cache刷新参数调节的方法和装置 |
US20150161062A1 (en) * | 2012-05-25 | 2015-06-11 | Bull Sas | Method, device and computer program for dynamic control of memory access distances in a numa type system |
-
2015
- 2015-09-16 CN CN201510590801.2A patent/CN105183667A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150161062A1 (en) * | 2012-05-25 | 2015-06-11 | Bull Sas | Method, device and computer program for dynamic control of memory access distances in a numa type system |
CN103823765A (zh) * | 2014-02-26 | 2014-05-28 | 浙江宇视科技有限公司 | 一种动态调整缓存刷新策略的方法和装置 |
CN104090731A (zh) * | 2014-07-09 | 2014-10-08 | 浙江宇视科技有限公司 | 一种自动进行Cache刷新参数调节的方法和装置 |
Non-Patent Citations (1)
Title |
---|
FLY_HIT: "浅谈Linux系统写磁盘机制", 《新浪博客》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105740170A (zh) * | 2016-01-22 | 2016-07-06 | 浪潮(北京)电子信息产业有限公司 | 一种缓存脏页刷写方法及装置 |
CN109960686A (zh) * | 2019-03-26 | 2019-07-02 | 北京百度网讯科技有限公司 | 数据库的日志处理方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI684868B (zh) | 記憶體控制器及其操作方法以及記憶體系統之控制方法 | |
KR102564165B1 (ko) | 비휘발성 메모리 익스프레스 컨트롤러에 의한 입출력 큐 관리 방법 | |
DE112006000545B4 (de) | System und Verfahren zum kohärenten Datentransfer während Leerlaufzuständen von Prozessoren | |
US9645829B2 (en) | Techniques to communicate with a controller for a non-volatile dual in-line memory module | |
US20160162203A1 (en) | Techniques to Manage Multiple Sequential Write Streams to a Solid State Drive | |
CN107870732B (zh) | 从固态存储设备冲刷页面的方法和设备 | |
JP2015506041A5 (zh) | ||
US8312213B2 (en) | Method to speed up access to an external storage device and an external storage system | |
DE10036278A1 (de) | Verfahren zur Überwachung eines Programmablaufs mittels einer Debug Logik | |
CN103514112B (zh) | 一种数据存储方法及系统 | |
US20160188778A1 (en) | Implementing system irritator accelerator fpga unit (afu) residing behind a coherent attached processors interface (capi) unit | |
CN105701029B (zh) | 一种异构存储优化方法及装置 | |
CN112181916A (zh) | 基于用户空间文件系统fuse的文件预读方法及装置、电子设备 | |
CN105183667A (zh) | 一种数据刷写方法及装置 | |
JP2010532061A5 (zh) | ||
DE102020133264A1 (de) | Adaptive Schreibbestätigung für Speichervorrichtungen | |
CN1639671A (zh) | 具有总线主控设备的计算机系统中的功率降低方法 | |
CN115237599A (zh) | 一种渲染任务处理方法和装置 | |
CN105740170B (zh) | 一种缓存脏页刷写方法及装置 | |
WO2016041156A1 (zh) | Cpu调度的方法和装置 | |
CN106919479B (zh) | 一种嵌入式设备控制器的实时日志记录方法 | |
WO2017054714A1 (zh) | 磁盘阵列的读方法及装置 | |
CN111966300B (zh) | 一种节省主控sram的存储器数据写入方法及装置 | |
CN108073475A (zh) | 固态硬盘备份对照表的方法 | |
CN104090731B (zh) | 一种自动进行Cache刷新参数调节的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20151223 |
|
WD01 | Invention patent application deemed withdrawn after publication |