CN113805814B - 缓存管理方法、装置、存储设备和可读存储介质 - Google Patents
缓存管理方法、装置、存储设备和可读存储介质 Download PDFInfo
- Publication number
- CN113805814B CN113805814B CN202111109154.0A CN202111109154A CN113805814B CN 113805814 B CN113805814 B CN 113805814B CN 202111109154 A CN202111109154 A CN 202111109154A CN 113805814 B CN113805814 B CN 113805814B
- Authority
- CN
- China
- Prior art keywords
- cache
- size
- data
- large file
- file data
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种缓存管理方法、装置、存储设备和可读存储介质,该缓存管理方法包括:在检测到预设时间内大文件数据写入的次数大于第一次数阈值时,将该预设时间内各个大文件数据的大小与存储设备的当前缓存大小比较;根据大于等于当前缓存大小的大文件数据的数据量之和与该预设时间内所有大文件数据的数据量之和的比值计算负载比例;根据预先划分的若干负载比例区间确定该负载比例当前所在的区间;根据确定的该区间所对应的缓存容量调整规则管理存储设备的缓存大小。本申请的技术方案可以根据实际的数据读写情况,动态调节存储设备的缓存大小,提高了设备使用寿命等。
Description
技术领域
本申请涉及存储技术领域,尤其涉及一种缓存管理方法、装置、存储设备和可读存储介质。
背景技术
以固态硬盘(SSD)为例,现有SSD在硬盘的存储空间中设置一部分用于作为数据的缓存(buffer)。该缓存主要是从MLC(多层存储单元)/TLC(三层存储单元)/QLC(四层存储单元)等存储区域中划出一部分作为SLC(单层存储单元)使用,虽然SLC的存储容量小,但能够获得比MLC/TLC/QLC等更快的读写速度。数据写入时,可以先放入Buffer中,能够明显提高对此数据的读写速度。
然而,现有SSD的buffer都是固定的,如果Buffer过大,会将过多的MCL/TLC/QLC等单元作为SLC单元使用,导致硬盘容量减小;如果Buffer过小,则将该数据转移到MLC/TLC/QLC等其他单元中,便起不到提高读写速度的作用,而且会频繁进行数据转移,极大浪费硬盘寿命。
发明内容
本申请实施例提供一种缓存管理方法、装置、存储设备和可读存储介质,可以根据实际的数据读写情况,动态调节存储设备的缓存大小,以提高设备的使用寿命等。
本申请的实施例提供一种缓存管理方法,包括:
在检测到预设时间内大文件数据写入的次数大于第一次数阈值时,将所述预设时间内各个所述大文件数据的大小与存储设备的当前缓存大小比较;
根据大于等于所述当前缓存大小的所述大文件数据的数据量之和与该预设时间内所有所述大文件数据的数据量之和的比值计算负载比例;
根据预先划分的若干负载比例区间确定所述负载比例当前所在的区间,其中,每个所述负载比例区间对应有不同的缓存容量调整规则;
根据确定的所述区间所对应的缓存容量调整规则管理所述存储设备的缓存大小。
在一种实施例中,该缓存管理方法还包括:
在检测到预设时间内大文件数据写入的次数小于或等于所述第一次数阈值时,将所述当前缓存大小设为所述存储设备的缓存最小值。
在一种实施例中,所述若干负载比例区间包括容量上调区间、容量下调区间和容量维持区间;
若确定的所述区间为所述容量上调区间,则所述根据确定的所述区间所对应的缓存容量调整规则管理所述存储设备的缓存大小,包括:
对大于等于所述当前缓存大小的所有所述大文件数据按照数据量升序或降序进行排序,并从序列中选取出位于中间位置的数据量作为上调值;
控制所述存储设备的缓存大小调整为所述上调值。
在一种实施例中,若确定的所述区间为所述容量下调区间,则所述根据确定的所述区间所对应的缓存容量调整规则管理所述存储设备的缓存大小,包括:
对小于所述当前缓存大小的所有所述大文件数据按照数据量升序或降序进行排序,并从序列中选取出位于中间位置的数据量作为下调值;
控制所述存储设备的缓存大小调整为所述下调值。
在一种实施例中,若确定的所述区间为所述容量维持区间,则所述根据确定的所述区间所对应的缓存容量调整规则管理所述存储设备的缓存大小,包括:
控制所述存储设备的缓存大小保持为所述当前缓存大小。
在一种实施例中,在确定为顺序写入类型时,统计连续写入的预设大小的数据流的次数;
若统计的所述次数大于第二次数阈值,则确定本次为大文件数据写入,并对连续写入的所述大文件数据的次数进行统计。
在一种实施例中,该缓存管理方法还包括:
若统计的所述次数小于等于所述第二次数阈值,则确定本次写入为零散文件数据写入;
在所述数据流的大小未达到所述预设大小或检测到随机写入命令时,对用于统计所述预设大小的数据流连续写入的次数的计数值进行清零。
本申请的实施例还提供一种缓存管理装置,包括:
比较模块,用于在检测到预设时间内大文件数据写入的次数大于第一次数阈值时,将所述预设时间内各个所述大文件数据的大小与存储设备的当前缓存大小比较;
计算模块,用于根据大于等于所述当前缓存大小的所述大文件数据的数据量之和与该预设时间内所有所述大文件数据的数据量之和的比值计算负载比例;
确定模块,用于根据预先划分的若干负载比例区间确定所述负载比例当前所在的区间,其中,每个所述负载比例区间对应有不同的缓存容量调整规则;
控制模块,用于根据确定的所述区间所对应的缓存容量调整规则管理所述存储设备的缓存大小。
本申请的实施例还提供一种存储设备,所述存储设备包括控制单元和存储单元,所述控制单元中包括控制器和内部存储器,所述内部存储器存储有计算机程序,所述控制器用于执行所述计算机程序以实施上述的缓存管理方法。
本申请的实施例还提供一种可读存储介质,其存储有计算机程序,所述计算机程序在处理器上执行时,实施上述的缓存管理方法。
本申请的实施例具有如下有益效果:
本申请实施例的缓存管理方法通过判断预定时间段内的大文件写入次数是否满足相应次数条件,并在满足时计算对应的负载比例,以及利用该负载比例确定对应的区间,以便采用适合的调整规则对该存储设备的缓存容量进行调节,通过对缓存容量的动态管理,可以在提高数据的读写速度的情况下,同时尽量使缓存容量进行合理化设置,以避免缓存区域对整体存储设备的容量和寿命造成影响等。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例的缓存管理方法的第一流程示意图;
图2示出了本申请实施例的缓存管理方法的第二流程示意图;
图3示出了本申请实施例的缓存管理方法的第三流程示意图;
图4示出了本申请实施例的缓存管理装置的一种结构示意图;
图5示出了本申请实施例的固态硬盘的一种结构示意图。
主要元件符号说明:
100-缓存管理装置;110-比较模块;120-计算模块;130-确定模块;
140-控制模块;200-固态硬盘;210-控制单元;220-存储单元。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。
通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
在下文中,可在本申请的各种实施例中使用的术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。
此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本申请的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本申请的各种实施例中被清楚地限定。
实施例1
请参照图1,本实施例提出一种缓存管理方法,可应用于如固态硬盘等存储设备中,该方法通过对数据读写的实际情况进行检测,并进行动态调节该存储设备中的缓存容量,使得设备在保证读写速度的前提下,可以有效提升设备的使用寿命等。
示范性地,如图1所示,该缓存管理方法包括:
步骤S110,检测预设时间内大文件数据写入的次数是否大于第一次数阈值。
其中,上述的大文件数据主要指一次写入的文件的数据量较大,例如,可通过判断该文件的大小是否超过一个自定义的数据量等方式来检测。而上述的第一次数阈值主要用于判断在一定时间内大文件数据的写入是否比较频繁。例如,若大于该第一次数阈值,则表明这段时间内主机频繁进行大文件的写入。反之,若小于或等于第一次数阈值,则表明这段时间内大文件写入的次数较少。
其中,上述的预设时间通过人为设置,且与存储设备的传输速度及数据接口类型等有关,例如存储设备的数据接口类型是SATA,对应传输协议是SATA协议,其最大的写入传输速度为500M/s左右;而假若存储设备的数据接口类型是PCIex4,对应传输协议是PCIe2.0协议,其最大的写入传输速度为1G/s,因此存储设备对应的接口类型传输速度越快,则单位时间内传输的数据量越多,可以将对应的预设时间缩短,如将SATA存储设备的预设时间设置为1h,而将PCIe存储设备的预设时间设置为0.5h,等等,具体可根据实际情况来相应调整。上述的第一次数阈值与预设时间的长短及存储设备的数据接口类型相关联。预设时间越长,则第一次数阈值越大;存储设备的数据接口类型的传输速度越高,则第一次数阈值越大。
为了更好地调整存储设备的缓存容量,本实施例通过对一段时间内的大文件数据写入的次数进行计数,并根据实际的写入情况来确定是否需要进行缓存容量的预测调整。对于上述步骤S110,示范性地,若该大文件数据的写入次数大于该第一次数阈值,则执行步骤S120。
步骤S120,若检测到超过第一次数阈值,将该预设时间内各个大文件数据的大小与存储设备的当前缓存大小比较。
本实施例中,在确定该预设时间内进行大文件的频繁写入后,此时可利用这段时间内获得的每次写入的大文件数据的大小,以及该存储设备在当前设置的缓存的大小(也为缓存容量),来共同确定如何调整该存储设备中的缓存大小。
示范性地,对于每次写入的大文件数据,可通过将其与当前设定的缓存的大小进行比较,以获得该存储设备对应的负载情况。进一步可选地,在比较各个大文件数据的大小与当前设定的缓存的大小时,在一种实施方式中,可将小于该当前缓存大小的所有大文件数据放入到第一集合,而将大于或等于该当前缓存大小的所有大文件数据均加入到第二集合中,以便后续的查询及处理等。当然,也可以采用其他的存放方式以进行区分,这里不作限定。
步骤S130,根据大于等于当前缓存大小的各大文件数据的数据量之和与该预设时间内所有大文件数据的数据量之和的比值计算负载比例。
其中,上述的负载比例可用来评价该存储设备的当前缓存大小对写入的这些大文件数据的数据量的匹配程度。例如,当大部分写入的大文件数据的大小大于该当前缓存大小时,则表示该预定时间段内,在进行数据传输的多数时间中缓存与实际的数据传输量是不匹配的,因此需要增加缓存的容量。又例如,当只有一小部分写入的大文件数据的大小小于该当前缓存大小时,则表示该预定时间段内,在进行数据传输的多数时间中该缓存的大小是过量的,实际的数据传输量并不需要这么多,因此可相应减少该缓存的大小。
例如,以上述的第一集合和第二集合为例,第一集合记为集合L,第二集合记为集合H,若存在n个大文件数据小于当前缓存的大小,则有集合L={L1,L2,…,Ln};若存在m个大文件数据大于或等于当前缓存的大小,则有集合H={H1,H2,…,Hm};其中,m与n之和等于该预设时间内的大文件数据写入的次数。示范性地,可通过如下表达式来计算该负载比例x的大小:
步骤S140,根据预先划分的若干负载比例区间确定该负载比例当前所在的区间,其中,每个负载比例区间对应有不同的缓存容量调整规则。
其中,上述的负载比例区间是指该负载比例的大小的可能取值范围。考虑到缓存容量的调整可能存在不同的情况,例如,可以调整为更大(即上调),也可以调整为更小(即下调)等,本实施例将对负载比例的所有可能取值进行区间预先划分,并且每个负载比例区间设有不同的缓存容量调整规则,以便根据当前负载比例的大小来确定是否需要容量调整以及具体如何调整该缓存的容量。
在一种实施方式中,可将整个负载比例的可能取值区间划分为三个区间,分别包括:容量上调区间、容量下调区间和容量维持区间。其中,容量上调区间是指若当前的负载比例落入该区间,则此时需要将缓存容量上调。例如,该容量上调区间可设为大于等于60%,此时的区间边界值X为60%;当然,还可以设为其他的取值,如大于等于55%、大于等于65%等。
容量下调区间是指若当前的负载比例落入该区间,则需要将缓存容量进行下调。例如,该容量下调区间可设为小于等于10%,此时的区间边界值Y为10%;还可以设为其他的值,如小于等于15%、小于等于20%等。
而容量维持区间是指若当前的负载比例落入该区间,则保持当前缓存的大小。可以理解,该容量维持区间即为容量上调区间与容量下调区间的并集的补集。例如,当容量上调区间为大于等于60%且容量下调区间为小于等于10%时,则该容量维持区间则为大于10%且小于60%。
对于上述的缓存容量调整规则,示范性地,若负载比例落在容量上调区间,可为通过从这些大于等于该当前缓存大小的所有大文件数据中选取出一个中位数以作为具体的上调值。同样,若落在容量下调区间,可通过从这些小于该当前缓存大小的所有大文件数据中选取出一个中位数以作为具体的下调值。而若落在容量维持区间,可通过控制维持在当前的缓存大小,即不作调整。
可以理解,通过中位数的选取方式,可以不受该集合中的极大或极小值的影响,从而在一定程度上提高了该数据大小的代表性。可选地,除了采用中位数外,也可以采用平均值,或者是去掉该集合H或L中的最大值和最小值后再取平均值等方式得到该上调值,这里不作限定。
步骤S150,根据确定的该区间所对应的缓存容量调整规则管理该存储设备的缓存大小。
在一种实施方式中,如图2所示,上述步骤S150可分为三种情况,具体如下:
若确定该当前负载比例所在的区间为容量上调区间,则执行子步骤S151,对大于等于当前缓存大小的所有大文件数据按照数据量升序或降序进行排序,并从序列中选取出位于中间位置的数据量作为本次调整时的上调值;以及,子步骤S152,控制存储设备的缓存大小调整为该上调值。
以上述的第二集合H为例,即选取出通过进行数据量排序后的集合H的中位数作为本次的上调值。
若确定该当前负载比例所在的区间为容量下调区间,则执行子步骤S153,对小于该当前缓存大小的所有大文件数据按照数据量升序或降序进行排序,并从序列中选取出位于中间位置的数据量作为本次调整时的下调值;以及,子步骤S154,控制存储设备的缓存大小调整为该下调值。
例如,以上述的第一集合L为例,即选取出通过进行数据量排序后的集合L的中位数作为本次的下调值。
若确定该当前负载比例所在的区间为容量维持区间,则执行子步骤S155,控制存储设备的缓存大小保持为当前缓存大小。
值得注意的是,存储设备通常设置有缓存极限值,因此,每次的上调值或下调值都应当不超过该存储设备的缓存的极限值。例如,以128G容量的固态硬盘为例,其缓存最小值为4G,最大值为20G,则每次选取的上调值不会超过20G,而下调值不会低于4G。
进一步地,如图2所示,该缓存管理方法还包括:
步骤S160,在检测到预设时间内大文件数据写入的次数小于或等于第一次数阈值时,将该当前缓存大小设为存储设备的缓存最小值。
示范性地,若检测到该预定时间段内,大文件数据的写入次数小于或等于第一次数阈值,则表明仅有很少部分,甚至是没有大文件数据写入,此时则可将缓存设置为该存储设备的缓存最小值。例如,一固态硬盘的缓存最小值为4G,在满足上述条件的情况下,可直接设置缓存的大小为4G。
考虑到在对存储设备进行数据写入操作时,主机写入的命令一般分为顺序写和随机写,其中,顺序写操作主要在于写入的数据量大而且集中,如可出现在大文件(如音频等)写入等的场景中;而随机写主要写入的数据量小而且分散,具有随机性,如可出现在零散文件(如软件等)写入等场景中。本实施例通过在判断出为顺序写入的情况下再进行大文件数据的写入次数统计,使得统计更有针对性,以减少对系统资源的占用等。
如图3所示,在上述步骤S110之前,该缓存管理方法还包括:
步骤S210,在确定为顺序写入类型时,统计连续写入的预设大小的数据流的次数。
示范性地,可以根据来自主机写入数据时提供的逻辑地址是否连续,来判断是顺序写还是随机写。例如,若连续,则为顺序写;若不连续,则为随机写。进而,在确定为顺序写入时,则可进行对是否写入大文件数据进行检测。
考虑到将数据写入到存储设备的缓存中时,通常是以一个数据流为单元的形式进行的,而一个文件可分成多个数据流来依次写入。例如,在一种实施方式中,可通过监测连续写入该预设大小的数据流的次数来计算本次写入的文件数据大小。其中,该数据流的大小可根据存储设备的实际性能参数来确定,例如,可为4K,8K或16K等,这里不作限定。
步骤S220,判断统计的次数是否大于第二次数阈值。若超过,则执行步骤S230;若未超过,则执行步骤S240。
步骤S230,在统计的次数大于第二次数阈值时,确定本次为大文件数据写入,并对连续写入的大文件数据的次数进行统计。
其中,第二次数阈值的取值与大文件的要求相关联。例如,定义超过1G大小的文件为大文件,而每次传输的数据流大小为16K,则第二次数阈值可为65536;又或者定义超过2G大小的文件为大文件,而每次传输的数据流大小为8K,则第二次数阈值可为262144。
示范性地,在确定本次为大文件数据写入时,则可对大文件数据进行持续计数,以用于进一步判断是否有大文件频繁地写入。例如,若统计出的次数会大于上述的第一次数阈值,则执行上述步骤S110。
步骤S240,若统计的次数小于等于该第二次数阈值,则确定本次写入为零散文件数据写入。
进一步可选地,该缓存管理方法还包括步骤S250,在数据流的大小未达到该预设大小,或检测到随机写入命令时,对用于统计预设大小的数据流连续写入的次数的计数值进行清零。
示范性地,在顺序写入情况下,若数据流的大小未达到该预设大小,则表示当前文件已结束,又或者是,检测到为随机写入类型,此时可对用于统计以判断本次是否为大文件的数据大小的计数值进行重置,以便在下一次顺序写入时对预设大小的数据流连续写入时进行重新计数。
本实施例的缓存管理方法通过判断最近一段时间内是否进行大文件频繁写入,并在频繁写入大文件时计算当前的负载比例,以及利用该负载比例确定对应的区间,进而采用对应的调整规则对该存储设备的缓存的容量进行调整以实现动态容量管理,这样可以在提高数据的读写速度,同时还尽量使缓存容量进行合理化设置,以避免缓存区域对整体存储设备的容量和寿命造成影响等。
实施例2
请参照图4,基于上述实施例1的方法,本实施例提出一种缓存管理装置100。示范性地,该缓存管理装置100包括:
比较模块110,用于在检测到预设时间内大文件数据写入的次数大于第一次数阈值时,将该预设时间内各个大文件数据的大小与存储设备的当前缓存大小比较。
计算模块120,用于根据大于等于当前缓存大小的大文件数据的数据量之和与该预设时间内所有大文件数据的数据量之和的比值计算负载比例。
确定模块130,用于根据预先划分的若干负载比例区间确定负载比例当前所在的区间,其中,每个负载比例区间对应有不同的缓存容量调整规则。
控制模块140,用于根据确定的区间所对应的缓存容量调整规则管理存储设备的缓存大小。
可以理解,本实施例的装置对应于上述实施例1的方法,上述实施例1中的可选项同样适用于本实施例,故在此不再重复描述。
本申请还提供了一种存储设备,例如,可以为固态硬盘等。示范性地,该存储设备包括控制单元和存储单元,其中,该控制单元包括控制器和内部存储器,该内部存储器存储有计算机程序,控制器通过运行所述计算机程序,从而使存储设备执行上述的缓存管理方法或者上述缓存管理装置中的各个模块的功能。
示范性地,如图5所示,该固态硬盘200包括控制单元210和存储单元220,其中,控制单元210中包括多个组件并通过总线相互连接,例如,该组件包括内部存储器211(如动态随机存储器DRAM)、控制器212(如中央处理器CPU)、ECC(错误校正与检测)组件213及接口214等。
其中,内部存储器211可用于临时存储由控制单元和内部存储器211使用的数据;控制器212可用于控制该固态硬盘的整体操作,响应外部主机的写入或读取请求来控制存储单元的写入或读取操作;ECC组件213则可用于对存储单元中读出的码字进行解码、检测并校正读出数据中的错误等;该接口214包括用于与外部主机连接的主机接口214a,以及用于与存储单元通信的存储器接口214b,例如,该主机接口所使用的协议可以是串行接口(USB)、多媒体卡(MMC)、高速外围组件互连(PCIE)、串行高级技术附件(SATA)等。
而存储单元220包括多个Nand闪存芯片,例如,该Nand闪存芯片可以是多层单元闪存或单层单元闪存,例如,多层单元具体可以是MLC(多层存储单元)/TLC(三层存储单元)/QLC(四层存储单元)等。
本申请还提供了一种可读存储介质,用于储存上述存储设备中使用的所述计算机程序。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。
Claims (9)
1.一种缓存管理方法,其特征在于,包括:
在检测到预设时间内大文件数据写入的次数大于第一次数阈值时,将所述预设时间内各个所述大文件数据的大小与存储设备的当前缓存大小比较;
根据大于等于所述当前缓存大小的所述大文件数据的数据量之和与该预设时间内所有所述大文件数据的数据量之和的比值计算负载比例;
根据预先划分的若干负载比例区间确定所述负载比例当前所在的区间,其中,每个所述负载比例区间对应有不同的缓存容量调整规则;
根据确定的所述区间所对应的缓存容量调整规则管理所述存储设备的缓存大小;
其中,所述检测到预设时间内大文件数据写入的次数大于第一次数阈值,之前还包括:
在确定为顺序写入类型时,统计连续写入的预设大小的数据流的次数;
若统计的所述次数大于第二次数阈值,则确定本次为大文件数据写入,并对连续写入的所述大文件数据的次数进行统计。
2.根据权利要求1所述的缓存管理方法,其特征在于,还包括:
在检测到预设时间内大文件数据写入的次数小于或等于所述第一次数阈值时,将所述当前缓存大小设为所述存储设备的缓存最小值。
3.根据权利要求1或2所述的缓存管理方法,其特征在于,所述若干负载比例区间包括容量上调区间、容量下调区间和容量维持区间;
若确定的所述区间为所述容量上调区间,则所述根据确定的所述区间所对应的缓存容量调整规则管理所述存储设备的缓存大小,包括:
对大于等于所述当前缓存大小的所有所述大文件数据按照数据量升序或降序进行排序,并从序列中选取出位于中间位置的数据量作为上调值;
控制所述存储设备的缓存大小调整为所述上调值。
4.根据权利要求3所述的缓存管理方法,其特征在于,若确定的所述区间为所述容量下调区间,则所述根据确定的所述区间所对应的缓存容量调整规则管理所述存储设备的缓存大小,包括:
对小于所述当前缓存大小的所有所述大文件数据按照数据量升序或降序进行排序,并从序列中选取出位于中间位置的数据量作为下调值;
控制所述存储设备的缓存大小调整为所述下调值。
5.根据权利要求3所述的缓存管理方法,其特征在于,若确定的所述区间为所述容量维持区间,则所述根据确定的所述区间所对应的缓存容量调整规则管理所述存储设备的缓存大小,包括:
控制所述存储设备的缓存大小保持为所述当前缓存大小。
6.根据权利要求1所述的缓存管理方法,其特征在于,还包括:
若统计的所述次数小于等于所述第二次数阈值,则确定本次写入为零散文件数据写入;
在所述数据流的大小未达到所述预设大小或检测到随机写入命令时,对用于统计所述预设大小的数据流连续写入的次数的计数值进行清零。
7.一种缓存管理装置,其特征在于,包括:
比较模块,用于在检测到预设时间内大文件数据写入的次数大于第一次数阈值时,将所述预设时间内各个所述大文件数据的大小与存储设备的当前缓存大小比较;
计算模块,用于根据大于等于所述当前缓存大小的所述大文件数据的数据量之和与该预设时间内所有所述大文件数据的数据量之和的比值计算负载比例;
确定模块,用于根据预先划分的若干负载比例区间确定所述负载比例当前所在的区间,其中,每个所述负载比例区间对应有不同的缓存容量调整规则;
控制模块,用于根据确定的所述区间所对应的缓存容量调整规则管理所述存储设备的缓存大小;
所述装置还包括:统计模块;
在所述比较模块用于在检测到预设时间内大文件数据写入的次数大于第一次数阈值之前,
所述统计模块,用于在确定为顺序写入类型时,统计连续写入的预设大小的数据流的次数;
确定模块,还用于若统计的所述次数大于第二次数阈值,则确定本次为大文件数据写入,并对连续写入的所述大文件数据的次数进行统计。
8.一种存储设备,其特征在于,所述存储设备包括控制单元和存储单元,所述控制单元中包括控制器和内部存储器,所述内部存储器存储有计算机程序,所述控制器用于执行所述计算机程序以实施权利要求1-6中任一项所述的缓存管理方法。
9.一种可读存储介质,其特征在于,其存储有计算机程序,所述计算机程序在处理器上执行时,实施根据权利要求1-6中任一项所述的缓存管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111109154.0A CN113805814B (zh) | 2021-09-22 | 2021-09-22 | 缓存管理方法、装置、存储设备和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111109154.0A CN113805814B (zh) | 2021-09-22 | 2021-09-22 | 缓存管理方法、装置、存储设备和可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113805814A CN113805814A (zh) | 2021-12-17 |
CN113805814B true CN113805814B (zh) | 2023-08-15 |
Family
ID=78896281
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111109154.0A Active CN113805814B (zh) | 2021-09-22 | 2021-09-22 | 缓存管理方法、装置、存储设备和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113805814B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116149550B (zh) * | 2022-12-29 | 2024-08-02 | 北京趋动智能科技有限公司 | 数据管理方法、装置、存储介质及设备 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5226141A (en) * | 1989-07-14 | 1993-07-06 | Touch Technologies, Inc. | Variable capacity cache memory |
CN1607508A (zh) * | 2003-10-16 | 2005-04-20 | 国际商业机器公司 | 自适应重构缓冲区的系统和方法 |
CN1677946A (zh) * | 2004-04-02 | 2005-10-05 | 华为技术有限公司 | 一种缓存分配方法及装置 |
WO2014059869A1 (zh) * | 2012-10-18 | 2014-04-24 | 中兴通讯股份有限公司 | 高速缓冲存储器的高速缓存块长度调整方法及装置 |
CN108694241A (zh) * | 2018-05-14 | 2018-10-23 | 平安科技(深圳)有限公司 | 一种数据的存储方法及设备 |
CN109040231A (zh) * | 2018-07-31 | 2018-12-18 | 优视科技新加坡有限公司 | 数据传输方法、装置、设备/终端/服务器及计算机可读存储介质 |
CN111538678A (zh) * | 2020-04-20 | 2020-08-14 | 深圳Tcl数字技术有限公司 | 数据缓冲方法、设备及计算机可读存储介质 |
KR20210029417A (ko) * | 2019-09-06 | 2021-03-16 | 삼성에스디에스 주식회사 | 캐시를 구비한 스토리지 시스템 및 그 데이터 처리 방법 |
CN112711387A (zh) * | 2021-01-21 | 2021-04-27 | 维沃移动通信有限公司 | 缓冲区容量的调整方法、装置、电子设备及可读存储介质 |
CN112737975A (zh) * | 2020-12-25 | 2021-04-30 | 珠海西山居移动游戏科技有限公司 | 缓冲区容量调整方法及装置 |
CN113360527A (zh) * | 2020-03-06 | 2021-09-07 | 腾讯科技(深圳)有限公司 | 缓冲区尺寸处理方法、装置、计算机设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7596643B2 (en) * | 2007-02-07 | 2009-09-29 | Siliconsystems, Inc. | Storage subsystem with configurable buffer |
US9542328B2 (en) * | 2015-01-26 | 2017-01-10 | International Business Machines Corporation | Dynamically controlling a file system write cache |
-
2021
- 2021-09-22 CN CN202111109154.0A patent/CN113805814B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5226141A (en) * | 1989-07-14 | 1993-07-06 | Touch Technologies, Inc. | Variable capacity cache memory |
CN1607508A (zh) * | 2003-10-16 | 2005-04-20 | 国际商业机器公司 | 自适应重构缓冲区的系统和方法 |
CN1677946A (zh) * | 2004-04-02 | 2005-10-05 | 华为技术有限公司 | 一种缓存分配方法及装置 |
WO2014059869A1 (zh) * | 2012-10-18 | 2014-04-24 | 中兴通讯股份有限公司 | 高速缓冲存储器的高速缓存块长度调整方法及装置 |
CN108694241A (zh) * | 2018-05-14 | 2018-10-23 | 平安科技(深圳)有限公司 | 一种数据的存储方法及设备 |
CN109040231A (zh) * | 2018-07-31 | 2018-12-18 | 优视科技新加坡有限公司 | 数据传输方法、装置、设备/终端/服务器及计算机可读存储介质 |
KR20210029417A (ko) * | 2019-09-06 | 2021-03-16 | 삼성에스디에스 주식회사 | 캐시를 구비한 스토리지 시스템 및 그 데이터 처리 방법 |
CN113360527A (zh) * | 2020-03-06 | 2021-09-07 | 腾讯科技(深圳)有限公司 | 缓冲区尺寸处理方法、装置、计算机设备 |
CN111538678A (zh) * | 2020-04-20 | 2020-08-14 | 深圳Tcl数字技术有限公司 | 数据缓冲方法、设备及计算机可读存储介质 |
CN112737975A (zh) * | 2020-12-25 | 2021-04-30 | 珠海西山居移动游戏科技有限公司 | 缓冲区容量调整方法及装置 |
CN112711387A (zh) * | 2021-01-21 | 2021-04-27 | 维沃移动通信有限公司 | 缓冲区容量的调整方法、装置、电子设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113805814A (zh) | 2021-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11262915B2 (en) | Method for read latency bound in SSD storage systems | |
TWI699647B (zh) | 形態儲存裝置及其分配方法 | |
US20180211708A1 (en) | Memory system and control method | |
CN108733579B (zh) | 提供固态盘中的后台操作的机会窗口提示的方法和固态盘 | |
US8725936B2 (en) | Storage system with flash memory, and storage control method | |
US9678827B2 (en) | Access counts for performing data inspection operations in data storage device | |
US11868652B2 (en) | Utilization based dynamic shared buffer in data storage system | |
CN111723057B (zh) | 一种文件预读方法、装置、设备及存储介质 | |
US20180188980A1 (en) | Memory apparatus and methods thereof for write amplification aware wear leveling | |
US10826526B2 (en) | Memory system and information processing system | |
US10712945B2 (en) | Deduplication processing method, and storage device | |
KR102521298B1 (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
US10817180B2 (en) | Methods and apparatus to configure performance of a solid state drive based on host write bandwidth | |
CN112114742B (zh) | 数据储存装置与数据处理方法 | |
CN113805814B (zh) | 缓存管理方法、装置、存储设备和可读存储介质 | |
CN109086009B (zh) | 一种监控管理方法和装置、计算机可读存储介质 | |
WO2017114232A1 (zh) | 一种数据读取方法、raid控制器及存储设备 | |
CN110209502B (zh) | 一种信息存储方法、装置、电子设备及存储介质 | |
WO2016082176A1 (zh) | 一种数据阈值预测方法与相关装置 | |
CN111597127B (zh) | 混合slc缓存的方法、装置、计算机设备及存储介质 | |
CN107291627B (zh) | 一种数据处理方法和电子设备 | |
CN111914116B (zh) | 视频数据存储方法、装置、终端设备及可读存储介质 | |
US9870156B2 (en) | Memory system and method of controlling memory system | |
CN115499513A (zh) | 数据请求的处理方法、装置、计算机设备和存储介质 | |
CN115469796A (zh) | 数据存储方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |