CN116701298A - 一种文件系统管理方法及电子设备 - Google Patents
一种文件系统管理方法及电子设备 Download PDFInfo
- Publication number
- CN116701298A CN116701298A CN202211469572.5A CN202211469572A CN116701298A CN 116701298 A CN116701298 A CN 116701298A CN 202211469572 A CN202211469572 A CN 202211469572A CN 116701298 A CN116701298 A CN 116701298A
- Authority
- CN
- China
- Prior art keywords
- file system
- data
- segment
- fragmentation
- value
- 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.)
- Granted
Links
- 238000007726 management method Methods 0.000 title claims abstract description 14
- 238000013467 fragmentation Methods 0.000 claims abstract description 210
- 238000006062 fragmentation reaction Methods 0.000 claims abstract description 210
- 238000003860 storage Methods 0.000 claims abstract description 73
- 238000012937 correction Methods 0.000 claims abstract description 44
- 238000013500 data storage Methods 0.000 claims abstract description 34
- 238000012545 processing Methods 0.000 claims abstract description 24
- 238000000034 method Methods 0.000 claims description 65
- 238000004590 computer program Methods 0.000 claims description 11
- 101100517651 Caenorhabditis elegans num-1 gene Proteins 0.000 claims description 6
- 239000012634 fragment Substances 0.000 description 89
- 230000008569 process Effects 0.000 description 27
- 230000008859 change Effects 0.000 description 19
- 230000006870 function Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 14
- 238000004364 calculation method Methods 0.000 description 10
- 238000013507 mapping Methods 0.000 description 9
- 230000001960 triggered effect Effects 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 4
- 230000009467 reduction Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000004140 cleaning Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 239000002096 quantum dot Substances 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/113—Details of archiving
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/162—Delete operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- 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)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种文件系统管理方法及电子设备,涉及计算机技术领域。解决文件系统碎片化影响存储性能的问题。具体方案为:根据段区域中数据块的状态信息,确定段区域中数据存储的碎片化程度;根据多个段区域中数据存储的碎片化程度,评估文件系统中数据存储的第一碎片化程度;根据第一碎片化程度和所述文件系统对应的修正因子,确定文件系统对应的第一碎片化指标值;文件系统对应的修正因子是根据所述文件系统中的第一数量和第二数量确定的数值,所述第一数量为所述文件系统中所述段区域的数量,所述第二数量为单个所述段区域中数据块的数量;在所述第一碎片化指标值大于预设值时,触发针对所述文件系统的垃圾回收处理。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种文件系统管理方法及电子设备。
背景技术
随着电子技术的不断发展,电子设备(如,手机、平板电脑、计算机等)已成为生活中不可或缺的一部分。电子设备中各类应用程序的正常运行,离不开对于存储空间的使用。
目前,电子设备采用文件系统对存储空间内的数据进行管理。然而,在电子设备运行期间,文件系统也不可避免地会出现碎片化问题。当文件系统的碎片化程度较高时,文件系统的存储性能也会受到影响。
发明内容
本申请实施例提供一种文件系统管理方法及电子设备,通过获取能够灵敏反应文件系统的存储性能变化的碎片化指标值,然后,利用该碎片化指标值管理文件系统,保障文件系统的存储性能。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,本申请实施例提供的一种文件系统管理方法,应用于电子设备,电子设备中包括文件系统,文件系统中包括多个用于存储数据的段区域,段区域包括多个数据块,方法包括:针对多个段区域中的每个段区域,根据段区域中数据块的状态信息,确定段区域中数据存储的碎片化程度,其中,状态信息包括已写状态或未写状态;根据多个段区域中数据存储的碎片化程度,评估文件系统中数据存储的第一碎片化程度;根据第一碎片化程度和文件系统对应的修正因子,确定文件系统对应的第一碎片化指标值;文件系统对应的修正因子是根据文件系统中的第一数量和第二数量确定的数值,第一数量为文件系统中段区域的数量,第二数量为单个段区域中数据块的数量;在第一碎片化指标值大于预设值时,触发针对文件系统的垃圾回收处理。
在上述实施例中,通过修正因子,将文件系统中数据存储的第一碎片化程度,量化为碎片化指标值,也即,第一碎片化指标值。该第一碎片化指标值作为指示文件系统碎片占比的数据,与存储性能之间近乎呈正比关系,能够灵敏反应文件系统的存储性能变化,那么利用该第一碎片化指标值判断是否针对文件系统进行垃圾回收处理,不仅可以即使针对文件系统进行垃圾回收出,改善由于碎片化引起的存储性能下降问题,还可以避免频繁垃圾回收处理,对存储器件寿命产生影响。
在一些实施例中,根据段区域中数据块的状态信息,确定段区域中数据存储的碎片化程度,包括:
根据段区域中数据块的状态信息,确定出第一类数据块的第三数量和第二类数据块的第四数量,其中,第一类数据块是状态信息为已写状态的数据块,第二类数据块是状态信息为已写状态,且相邻数据块的状态信息为未写状态的数据块,相邻的两个数据块所对应的逻辑地址相邻;根据加权处理后的第三数量和第四数量,确定第一分数,第一分数是指示段区域中数据存储的碎片化程度的量化值,在段区域中任意的数据块的状态信息变化的情况下,对应的第一分数也变化。
在上述实施例中,通过数据块的状态信息,结合相邻数据块的状态信息,准确地识别段区域中数据存储是否零碎,也即,准确识别段区域对应的碎片化程度。
在一些实施例中,在确定第一分数之前,方法包括:利用第一权重对第三数量进行加权;利用第二权重对第四数量进行加权;确定第一分数,包括:叠加加权处理后的第三数量和第四数量,得到第一分数;其中,第一权重的取值为1,第二权重的取值为2。
在上述实施例中,通过第一权重和第二权重的加权后,得到的第一分数,在经过修正因子调整后,与存储性能之间更接近线性关系。
在一些实施例中,根据段区域中数据块的状态信息,确定段区域中数据存储的碎片化程度,包括:根据段区域中数据块的状态信息和/或相邻数据块的状态信息,确定数据块对应的分数值,相邻的两个数据块所对应的逻辑地址也相邻;根据每一个数据块的分数值,确定段区域对应的第一分数;其中,第一分数是指示段区域中数据存储的碎片化程度的量化值,在段区域中任意的数据块的状态信息变化的情况下,对应的第一分数也变化;其中,在数据块的状态信息为已写状态时,对应的分数值为第一值;在数据块的状态信息为未写状态,且相邻数据块中包含一个已写状态的数据块时,确定对应的分数值为第二值;在数据块的状态信息为未写状态,且相邻数据块中包含二个已写状态的数据块时,确定对应的分数值为第三值;在数据块的状态信息为未写状态,且相邻数据块中包含二个未写状态的数据块时,确定对应的分数值为第四值;其中,第四值小于第一值,第一值小于第二值,第二值小于第三值。
在一些实施例中,在确定段区域中数据存储的碎片化程度之前,方法还包括:在电子设备开机期间,启动挂载文件系统;在挂载文件系统期间,遍历文件系统中每一个数据块;在遍历到每一个数据块的同时,获取数据块对应的状态信息。
在上述实施例中,可以利用挂载文件系统中固有遍历数据块的环节,确定各个数据块的状态信息,减少单独遍历数据块的开销。
在一些实施例中,在确定段区域中数据存储的碎片化程度之前,方法还包括:在第一条件下,遍历文件系统中每一个数据块,确定每一个数据块对应的状态信息。
在一些实施例中,第一条件包括以下任意一项:检测到针对文件系统中的第一操作,第一操作包括指示向文件系统写入数据的操作,或者,将文件系统中已存储数据擦除的操作;电子设备中空闲的内存空间大小小于第一内存阈值。
在一些实施例中,多个段区域中包括第一段区域和第二段区域,在确定文件系统对应的第一碎片化指标值之后,方法还包括:接收针对第一段区域的第二操作,第二操作包括指示向第一段区域写入数据的操作,或者,将第一段区域中已存储数据擦除的操作;响应于第二操作,重新确定第一段区域中数据块对应的状态信息;在第一段区域中包含至少一个第三类数据块的情况下,重新确定第一段区域中数据存储的碎片化程度,第三类数据块包括状态信息由已写状态变为未写状态的数据块,以及状态信息由未写状态变为已写状态的数据块;根据第二段区域中数据存储的碎片化程度和第一段区域中数据存储的碎片化程度,重新评估文件系统中数据存储的第二碎片化程度;根据第二碎片化程度和文件系统对应的修正因子,确定文件系统对应的第二碎片化指标值。
在上述实施例中,在电子设备运行过程中,部分段区域(如第一段区域)如果出现状态信息改变的数据块,那么仅重新确定第一段区域的碎片化程度,无需重新确定其他段区域(如,第二段区域)的碎片化程度。这样,可以减少动态更新文件系统的碎片化程度的消耗。
在一些实施例中,方法还包括:在确定出文件系统对应的第一碎片化指标值之后,将第一碎片化指标值存储到第一存储位置;在确定出文件系统对应的第二碎片化指标值之后,将第二碎片化指标值更新到第一存储位置。
在一些实施例中,所述第一碎片化指标值利用如下公式确定:
其中,Rfrag为所述第一碎片化指标值,Score为所述第二分数,(num-1+num)β为所述修正因子,num为所述第二数量,β为所述第一数量。
第二方面,本申请实施例提供的一种电子设备,电子设备包括一个或多个处理器和存储器;所述存储器与处理器耦合,存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当一个或多个处理器执行计算机指令时,所述一个或多个处理器,用于:针对多个段区域中的每个段区域,根据所述段区域中数据块的状态信息,确定所述段区域中数据存储的碎片化程度,其中,所述状态信息包括已写状态或未写状态;根据多个所述段区域中数据存储的碎片化程度,评估所述文件系统中数据存储的第一碎片化程度;根据所述第一碎片化程度和所述文件系统对应的修正因子,确定所述文件系统对应的第一碎片化指标值;所述文件系统对应的修正因子是根据所述文件系统中的第一数量和第二数量确定的数值,所述第一数量为所述文件系统中所述段区域的数量,所述第二数量为单个所述段区域中数据块的数量;在所述第一碎片化指标值大于预设值时,触发针对所述文件系统的垃圾回收处理。
在一些实施例中,所述一个或多个处理器,还用于:根据所述段区域中数据块的状态信息,确定出第一类数据块的第三数量和第二类数据块的第四数量,其中,所述第一类数据块是状态信息为所述已写状态的数据块,所述第二类数据块是状态信息为所述已写状态,且相邻数据块的状态信息为所述未写状态的数据块,相邻的两个数据块所对应的逻辑地址相邻;根据加权处理后的所述第三数量和所述第四数量,确定第一分数,所述第一分数是指示所述段区域中数据存储的碎片化程度的量化值,在所述段区域中任意的所述数据块的状态信息变化的情况下,对应的所述第一分数也变化。
在一些实施例中,所述一个或多个处理器,还用于:利用第一权重对所述第三数量进行加权;利用第二权重对所述第四数量进行加权;所述确定第一分数,包括:叠加加权处理后的所述第三数量和第四数量,得到所述第一分数;其中,所述第一权重的取值为1,所述第二权重的取值为2。
在一些实施例中,所述一个或多个处理器,还用于:根据所述段区域中所述数据块的状态信息和/或相邻数据块的状态信息,确定所述数据块对应的分数值,相邻的两个数据块所对应的逻辑地址也相邻;根据每一个所述数据块的分数值,确定所述段区域对应的第一分数;其中,所述第一分数是指示所述段区域中数据存储的碎片化程度的量化值,在所述段区域中任意的所述数据块的状态信息变化的情况下,对应的所述第一分数也变化;其中,在所述数据块的状态信息为已写状态时,对应的所述分数值为第一值;在所述数据块的状态信息为未写状态,且所述相邻数据块中包含一个已写状态的数据块时,确定对应的所述分数值为第二值;在所述数据块的状态信息为未写状态,且所述相邻数据块中包含二个已写状态的数据块时,确定对应的所述分数值为第三值;在所述数据块的状态信息为未写状态,且所述相邻数据块中包含二个未写状态的数据块时,确定对应的所述分数值为第四值;其中,所述第四值小于所述第一值,所述第一值小于所述第二值,所述第二值小于所述第三值。
在一些实施例中,所述一个或多个处理器,还用于:在电子设备开机期间,启动挂载所述文件系统;在挂载所述文件系统期间,遍历所述文件系统中每一个所述数据块;在遍历到每一个所述数据块的同时,获取所述数据块对应的所述状态信息。
在一些实施例中,所述一个或多个处理器,还用于:在第一条件下,遍历所述文件系统中每一个所述数据块,确定每一个所述数据块对应的所述状态信息。
在一些实施例中,第一条件包括以下任意一项:检测到针对所述文件系统中的第一操作,所述第一操作包括指示向所述文件系统写入数据的操作,或者,将所述文件系统中已存储数据擦除的操作;所述电子设备中空闲的内存空间大小小于第一内存阈值。
在一些实施例中,所述一个或多个处理器,还用于:接收针对所述第一段区域的第二操作,所述第二操作包括指示向所述第一段区域写入数据的操作,或者,将所述第一段区域中已存储数据擦除的操作;响应于所述第二操作,重新确定所述第一段区域中数据块对应的状态信息;在所述第一段区域中包含至少一个第三类数据块的情况下,重新确定所述第一段区域中数据存储的碎片化程度,所述第三类数据块包括所述状态信息由已写状态变为未写状态的数据块,以及所述状态信息由未写状态变为已写状态的数据块;根据所述第二段区域中数据存储的碎片化程度和所述第一段区域中数据存储的碎片化程度,重新评估所述文件系统中数据存储的第二碎片化程度;根据所述第二碎片化程度和所述文件系统对应的修正因子,确定所述文件系统对应的第二碎片化指标值。
在一些实施例中,所述一个或多个处理器,还用于:在确定出所述文件系统对应的所述第一碎片化指标值之后,将所述第一碎片化指标值存储到第一存储位置;在确定出所述文件系统对应的所述第二碎片化指标值之后,将所述第二碎片化指标值更新到所述第一存储位置。
在一些实施例中,第一碎片化指标值利用如下公式确定:
其中,Rfrag为所述第一碎片化指标值,Score为所述第二分数,(num-1+num)β为所述修正因子,num为所述第二数量,β为所述第一数量。
第三方面,本申请实施例提供的一种计算机存储介质,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行上述第一方面及其可能的实施例中的方法。
第四方面,本申请提供一种计算机程序产品,当计算机程序产品在上述电子设备上运行时,使得电子设备执行上述第一方面及其可能的实施例中的方法。
可以理解地,上述各个方面所提供的电子设备、计算机存储介质以及计算机程序产品均应用于上文所提供的对应方法,因此,其所能达到的有益效果可参考上文所提供的对应方法中的有益效果,此处不再赘述。
附图说明
图1为本申请实施例提供的文件系统存在碎片化问题的示意图之一;
图2为本申请实施例提供的文件系统存在碎片化问题的示意图之二;
图3为本申请实施例提供的电子设备的硬件结构示例图;
图4为本申请实施例提供的电子设备的软硬件结构的示例图;
图5为本申请实施例提供的F2FS的文件系统架构图;
图6为本申请实施例提供的Segment的示例图之一;
图7为本申请实施例提供的Segment的示例图之二;
图8为本申请实施例提供的Segment的示例图之三;
图9为本申请实施例提供的Segment的示例图之四;
图10为本申请实施例提供的Segment的示例图之五;
图11为本申请实施例提供的计算碎片化指标值的场景示例图;
图12为本申请实施例提供的文件系统管理方法的步骤流程图;
图13为本申请实施例提供的芯片系统的示例图。
具体实施方式
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
随着存储技术的发展,存储的应用场景越来越广泛。在一些电子设备的存储方案中,数据是以文件的方式保存在电子设备的存储器中,并通过电子设备的文件系统对存储的文件进行管理。
也就是说,在文件系统的抽象模型中,文件是数据的容器。同一文件中的数据在逻辑上存在彼此的联系。
在一些实施例中,文件系统可以将连续的存储空间划分为多个段(Segment),或称为段区域。每个段对应多个数据块。理想情况下,一个Segment用于存储一个文件所对应的数据。当然,大部分Segment在写入一个文件的数据之后,依然存在未写状态的数据块(又称为未写数据块),也即,Segment未写满。这样,在上层应用程序需要写入新数据时,可以在已写入数据但未写满的Segment中,选出至少一个连续的未写数据块,并写入该新数据。其中,在选未写数据块的过程中,具有一定随机性。这样,如图1所示,在同一Segment中,虽然同一文件的数据是连续存储的,比如,文件1对应的数据在Segment中连续的多个数据块中存储,文件2对应的数据在Segment中连续的多个数据块中存储。但是,不同文件对应的数据之间可能间隔至少一个未写数据块,比如,文件1和文件2的数据之间存在两个连续的未写数据块。这样,也会造成文件系统的碎片化问题。
另外,在使用电子设备的过程中,在数据写入时需要占用存储空间来存储数据,当然,在数据使用完毕时也会释放占用的存储空间。这样,如图2所示,即使将不同文件顺序写入文件系统,也即,两个文件之间无未写数据块,但是,随着存储空间的不断被占用和不断被释放,如,Segment中顺序写入文件1、文件2和文件3的数据之后,由删除文件3对应的数据,释放出文件3所占用的数据块,这样,也会使得文件系统中状态为未写状态的数据块,在存储空间内的分布也不连续,即出现文件系统的碎片化问题。
可以理解地,上述文件系统的片段化问题,会直接影响到电子设备的存储性能。在已写入数据且未写满的Segment中,连续的一个或多个未写数据块组成一个碎片区域,在一些示例中,同一Segment中还可以能包括多个碎片区域。
一方面,在实际应用过程中,当文件系统的碎片化程度较高时,面对上层应用程序每次下发的数据写请求,需要查找用于写入对应数据的未写数据块。在查找未写数据块的过程中,需要判断遍历到的未写数据块是否属于碎片区域。在属于碎片区域时,判断该碎片区域是否足够写入本次下发的数据写入请求对应的文件。显然,整个数据写入过程所需的时间就会比较长。
在实际应用过程中,面对上层应用程序每次下发的数据读请求,需要遍历每一个数据块,在遍历到碎片区域时,相比于遍历到已写的数据块而言,需要更多的判断,也就是,当文件系统的碎片化程度较高时,整个数据读过程所需的时间就会比较长。
另一方面,在实际应用过程中,当文件系统的碎片化程度较高时,上层应用程序每次下发的数据写入请求,会被文件系统包装成很多个输入输出(block input output,BIO)请求下发给驱动层,使得驱动层在根据每个BIO请求驱动对应的块设备驱动,对存储器进行数据写入操作时,数据写入操作的处理时间较长。
另外,当文件系统的碎片化程度较高时,后续在根据上层应用程序下发的数据读取请求,读取这次写入存储器中的数据时,文件系统也会将数据读取请求拆分成很多个BIO请求下发给驱动层,使得驱动层在根据每个BIO请求驱动对应的块设备驱动,对存储器进行数据读取操作时,数据读取操作的处理时间也较长。
在一些实施例中,电子设备可以通过对文件系统进行垃圾回收处理,解决文件系统中碎片化程度高的问题。比如,对于碎片化程度较高的Segment,可以通过段清理模块(Segment Cleaner),将其内的有效数据移动至其他Segment中,将原本碎片化程度较高的Segment中的数据块都释放出来,得到未写入数据的Segment,降低文件系统的碎片化程度。
显然,在上述垃圾回收的过程中,会出现存储器件被反复擦除和重写的情况。由于部分存储器件(如,flash)的固有特性,存储颗粒具有一定的擦写寿命限制,频繁针对文件系统进行垃圾回收,必然会影响到存储器件的寿命。可见,确定处理文件系统碎片化问题的时机就十分重要。
在本申请实施例中,提供了一种文件系统管理方法,应用于电子设备。其中,该电子设备可以评估出能指示文件系统中碎片化占比的碎片化指标值,该碎片化指标值还能够灵敏反映文件系统的存储性能变化。可以理解地,上述存储性能可以由文件系统的数据读写速度指示。在文件系统读写数据的速度越慢,对应的存储性能越低,在文件系统读写数据的速度越快,对应的存储性能越高。另外,该碎片化指标值的变化情况与文件系统的存储性能的下降比例(也即,读写速度下降比例)呈线性关系。这样,在该碎片化指标值指示存储性能下降严重,比如,得到的碎片化指标超过预设值的情况下,可以确定触发针对文件系统的垃圾回收处理。这样,不仅能够避免频繁进行垃圾回收处理,也可以改善文件系统碎片化对存储性能的影响。
示例性地,上述电子设备可以是手机、平板电脑、膝上型、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本,以及个人数字助理(personal digital assistant,PDA)、增强现实(augmented reality,AR)\虚拟现实(virtual reality,VR)设备等,本申请实施例对该电子设备的具体形态不作特殊限制。
请参考图3,为本申请实施例提供的一种电子设备100的结构示意图。
如图3所示,电子设备100可以包括:处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。
其中,上述传感器模块180可以包括压力传感器,陀螺仪传感器,气压传感器,磁传感器,加速度传感器,距离传感器,接近光传感器,指纹传感器,温度传感器,触摸传感器,环境光传感器和骨传导传感器等传感器。
可以理解的是,本实施例示意的结构并不构成对电子设备100的具体限定。在另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
可以理解的是,本实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行电子设备100的各种功能应用以及数据处理。
显示屏194用于显示图像,视频等。该显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备100可以包括N个摄像头193,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
另外,上述电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构,等。本申请实施例以分层架构的Android系统为例,示例性说明电子设备100的软件结构。
图4是本申请实施例的电子设备100的软件结构框图。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,电子设备的架构可以包括应用层、内核层和硬件层。当然,电子设备的软件架构中还可以包括图4中未示出的层,比如,框架层等,由于本申请实施例主要涉及文件系统相关的内容,在此不对图4中未示出的层进行详细说明。其中,应用层可以包括一系列应用程序包。如图4所示,应用程序包可以包括应用程序1、应用程序2和应用程序3等,上述应用程序1、应用程序2和应用程序3指代不同的应用程序,比如,电话、邮箱以及相机等应用程序。
其中,内核层包括文件系统和驱动层。
文件系统是操作系统用于明确存储器或分区上的文件的方法和数据结构,即在存储器上组织文件的方法。也可以说,操作系统中负责管理和存储文件信息的软件结构称为文件系统,即文件系统属于内核(或者操作系统)本身的功能单元。
内核可以将硬件层中包括的存储器虚拟成多个块设备,通过驱动层中的块设备驱动提供给文件系统使用。
文件系统将应用层中各个应用程序产生的数据,以文件的形式存储在存储器中。当文件系统接收到应用层中某个应用程序发送的文件访问请求时,则将生成针对对应块设备的访问请求,然后,将该访问请求发送到驱动层,通过驱动层的调度管理,驱动对应的块设备驱动,从而将该访问请求下发到存储器中,从而通过文件系统以及驱动层实现电子设备100的存储功能。
在一些实施例中,文件系统可采用分块的方式进行数据管理,存储器中的可用空间在逻辑上被划分为大量大小相同的数据块作为存储空间的粒度,进而通过元数据实现细粒度的存储空间状态跟踪和管理。文件系统的分块机制在与驱动层的协同工作时,驱动层可以合并文件系统业务流程对连续地址分块数据的操作,实现数据操作的“化零为整”,从而提升文件业务操作的性能,具体表现为数据读写速度的提升以及数据读写的延迟时间的降低。
其中,在文件系统中,Segment为文件系统进行存储空间分配、整理和回收的基本单元,一个Segment包括多个数据块(block),数据块是数据存储的最小粒度。文件系统中的每个Segment的大小可根据需求进行配置。
在本申请实施例中,文件系统可以是闪存友好型文件系统(flash friendlyfilesystem,F2FS),上述F2FS是专门为flash设备设计的一个日志结构型文件系统(Log-structured File System,LFS)。
如图5所示,F2FS文件系统将硬件层的存储器分为6个部分,分别为超级块(Superblock)、检查点(Checkpoint)、段信息表(Segment Info Table,SIT)、索引节点地址表(Node Address Table,NAT)、段摘要区域(Segment Summary Area),以及主区域(MainArea)。
在一些实施例中,上述Main Area则是日程(log)区域,是用于存储应用层所对应的文件数据的区域。上述Main Area可以被划分为多个Segment,每一Segment由多个数据块组成。例如,4096字节(即4KB)大小的存储空间可作为一个数据块的情况下,如果512个数据块可组成一个Segment,那么F2FS文件系统中的每个Segment的大小为2MB。另外,在确定Segment的大小信息和数据块的大小信息之后,利用二者之间的商,可以确定文件系统中每一个Segment包含的数据块数量。
另外,如图5所示,Segment是F2FS文件系统中进行空间管理的基本单元,也确定了文件系统元数据的初始布局。多个连续的Segment组成Section,多个连续的Section组成Zone。Section和Zone是F2FS日志写入和清理的重要单元,通过配置合适的Section大小可以极大地减少FTL层面垃圾回收的开销。
在一些实施例中,Superblock、Checkpoint、SIT、NAT和Segment Summary Area均是元数据存储区域。
示例性地,上述Superblock中包含基本分区信息(如,文件系统的大小信息、Segment的大小信息)和F2FS在格式化分区时确定不可更改的参数。
又示例性地,Checkpoint中保存文件系统状态信息、有效NAT/SIT集合的位图、孤儿inode列表和当前活跃段的所有者信息。其中,上述孤儿inode列表中包括指定类型文件的存储位置,该指定类型文件可以是确定需要删除时不能立即释放对应的存储空间的文件(比如,被其他文件引用)。
再示例性地,SIT是可用于管理segment状态信息。比如,segment中数据块的使用状态(已写状态或未写状态)以及有效无效状态。
再示例性地,NAT中包含主区域中各个索引节点(如,iNode节点)对应的物理地址。
再示例性地,Segment Summary Area可以用于集中管理物理地址与逻辑地址之间的映射关系。
总之,在F2FS文件系统中,数据在写入时会先选择待写入的Segment,然后再拆分为4KB大小的单元映射到存储空间中的不同块地址;在进行数据读取时,会按照保存的逻辑地址与物理地址的映射关系,并根据逻辑地址的偏移量依次确定出数据在存储空间中的块地址,以实现对数据的读取。
另外,如图4所示,硬件层用于指示电子设备100上安装的硬件,其可以包括处理器、存储器和通信接口等。该存储器可以为UFS、嵌入式多媒体存储卡(embedded multimedia card,EMMC)等。
可以理解的是,本申请实施例中的文件系统可以不局限于F2FS文件系统,其还可以为其他文件系统,如第四代扩展文件系统(fourth extended file system,EXT4)、闪存日志型文件系统(journaling flash file system,JFFS)、网络文件系统(networkfilesystem,NFS),本申请实施例对此不作限定。
另外,本申请实施例中的电子设备的操作系统可以不局限于Android系统,其还可以为Windows系统、MAC OS系统、Linux系统等,本申请实施例对此不作限定。
下面结合附图,描述本申请实施例提供的文件系统管理方法的实现细节。
在一些实施例中,电子设备可以根据文件系统中各个Segment中数据块的状态信息,计算文件系统对应的碎片评分。其中,上述计算碎片评分的过程包括计算初始分数和实时更新分数两个阶段。
在一些实施例中,上述计算初始分数可以是遍历文件系统中所有的数据块,获取每个数据块对应的状态信息,并计算当前文件系统对应的碎片评分。该碎片评分可以表征当前文件系统的碎片化程度。
其中,每个数据块可以对应三类状态,如,可读状态、未写状态和可擦状态。当数据块中没有数据写入时,该数据块的状态为未写状态;当未写状态的数据块中写入了有效数据后,该数据块的状态变为可读状态;当可读状态的数据块中的数据被废弃后,该数据块的状态变为可擦状态;而当可擦状态的数据块中的数据被文件系统执行完成擦除操作后,该数据块的状态又变为了未写状态。
由于文件系统的碎片化问题主要面向数据写入操作,对于计算碎片评分来说,可以仅考虑每个数据块的状态是不是未写状态。因此,可以将上述的可读状态、未写状态和可擦状态这三种状态,归纳为已写状态和未写状态这两种状态,上述可读状态和可擦状态也归纳于属于已写状态。以下涉及到的数据块的状态信息均指的是已写状态或未写状态。
示例性地,电子设备在挂载文件系统时,按照正常文件系统挂载流程,会触发遍历系统文件中的所有数据块,以建立各个数据块在存储器中物理地址与在文件系统中逻辑地址之间的对应关系。
可以理解地,文件系统在生成之后还不能直接使用,需要将该文件系统挂载到某个目录上,才可以通过这个目录访问该文件系统。该目录可称为挂载点,其用于作为另一个文件系统的访问入口。挂载可以看作是文件系统的初始化过程,其可以在电子设备的开机过程中来挂载文件系统。
在本申请实施例中,电子设备可以借助挂载流程中需要遍历数据块的环节,在建立数据块的逻辑地址与物理地址之间的对应关系的过程中,依据数据块的物理地址指示的存储空间内是否存储有数据,确定该数据块对应的状态信息。比如,遍历到数据块a的逻辑地址时,建立数据块a的逻辑地址a和物理地址a之间的对应关系。此时,如果物理地址a所指示的存储空间内已写有数据,那么确定数据块a的状态信息为已写状态。如果物理地址a所指示的存储空间内未写有数据,那么确定数据块a的状态信息为未写状态。
这样,在所有数据块的逻辑地址与物理地址之间的对应关系建立完成之后,电子设备可以得到所有数据块当前的状态信息。
可以理解的。文件系统的碎片化程度,可以采用Segment为基本单位进行评估,另外,每个Segment对应的碎片评分,可以是根据该Segment中未写状态的数据块是否连续进行衡量,也就是,如果Segment中相邻两个数据块的状态信息不同的情况下,可以确定出现了不连续的未写数据块。同一Segment中不连续的未写数据块越多,Segment的碎片化程度越高,也即,Segment对应的碎片评分也会越高。
作为一种实现方式,电子设备可以根据Segment中每一个数据块的状态信息,结合考虑与相邻数据块之间是否存在状态信息的差异,确定每一个数据块对应的评分值。然后,将Segment中所有数据块的评分值叠加,得到Segment对应的碎片评分。最后,将文件系统中所有Segment对应的碎片评分叠加,得到文件系统对应的碎片评分。
如图6、图7、图8、图9和图10所示,在确定每一个数据块对应的评分值的过程,可能出现以下几种情况下:
情况一,数据块的状态信息为已写状态,且相邻的数据块对应的状态信息都为已写状态。比如,图6中的数据块601在逻辑地址上,与数据块602和数据块603连续,也即,数据块602和数据块603均为数据块601相邻的数据块。在数据块601、数据块602和数据块603的状态信息均为已写状态时,数据块601对应的评分值为权重值1,该权重值1可以是经验值,比如,权重值1的取值为“1”。
情况二,数据块的状态信息为已写状态,且至少一个相邻的数据块的状态信息为未写状态。比如,图7中的数据块701在逻辑地址上,与数据块702和数据块703连续,也即,数据块702和数据块703均为数据块701相邻的数据块。在数据块701和数据块702的状态信息为已写状态,数据块703的状态信息为未写状态时,数据块701对应的评分值为权重值1。
在比如,数据块704在逻辑地址上,与数据块705和数据块706连续,也即,数据块705和数据块706均为数据块704相邻的数据块。在数据块704的状态信息为已写状态,数据块705和数据块706的状态信息为未写状态时,数据块704对应的评分值为权重值1。
情况三,数据块的状态信息为未写状态,且相邻的数据块对应的状态信息都为未写状态。比如,图8中的数据块801在逻辑地址上,与数据块802和数据块803连续,也即,数据块802和数据块803均为数据块801相邻的数据块。在数据块801、数据块802和数据块803的状态信息均为未写状态时,数据块801对应的评分值为权重值2,该权重值2可以是经验值,比如,权重值2的取值为“0”。
情况四,数据块的状态信息为未写状态,且相邻的数据块中一个状态信息为未写状态,另一个状态信息为已写状态。
比如,图9中的数据块901在逻辑地址上,与数据块902和数据块903连续,也即,数据块902和数据块903均为数据块901相邻的数据块。
在数据块901和数据块902的状态信息均为未写状态,数据块903的状态信息为已写状态时,数据块901对应的评分值为权重值3,该权重值3可以是经验值,比如,权重值3的取值为“2”。
或者,在数据块901和数据块903的状态信息均为未写状态,数据块902的状态信息为已写状态时,数据块901对应的评分值也是权重值3。
情况五,数据块的状态信息为未写状态,且相邻的数据块的状态信息均为已写状态。比如,图10中的数据块1001在逻辑地址上,与数据块1002和数据块1003连续,也即,数据块1002和数据块1003均为数据块1001相邻的数据块。在数据块1001的状态信息为未写状态,数据块1002和数据块1003的状态信息均为已写状态时,数据块1001对应的评分值为权重值4,该权重值4可以是经验值,权重值4是权重值3的两倍,比如,在权重值3的取值为2时,权重值4的取值为“4”。
这样,在遍历所有数据块,且确定所有数据块对应的状态信息之后,就可以对应确定各数据块的评分值。然后,电子设备将同一Segment的数据块对应的评分值叠加,得到该Segment的碎片评分。在所有Segment的碎片评分都确定出之后,可以通过各个Segment的碎片评分的叠加,得到文件系统的碎片评分。
作为另一种实现方式,电子设备可以先统计segment中满足条件1的数据块的数量1。其中,上述条件1是指状态信息为已写状态,比如,图10示出的segment中满足条件1的数据块的数量1为16。另外,再统计segment中满足条件2数据块的数量2。其中,条件2可以是状态信息为已读状态,且相邻数据块的状态信息为未读状态的数据块,可以理解的,相邻的两个数据块的逻辑地址也相邻。比如,图10示出的segment中满足条件2的数据块的数量2为6。
然后,根据数量1和数量2,利用下述公式1:
计算Segment对应的碎片评分。其中,Scorefrag指代Segment对应的碎片评分。Block1为统计出的数量1,Blockfrag为统计出的数量2。上述γ为权重值1,上述为权重值3。示例性地,上述权重值1可以是1,权重值3可以是2。这样,如图10所示的segment对应的碎片评分可以是1*16+2*6,也即,28。
也就是,电子设备也可以通过统计指定类型的数据块数量,结合上述公式1就可以计算出该Segment对应的碎片评分。之后,利用得到的所有Segment的碎片评分,叠加得到文件系统的碎片评分。
另外,利用上述方法,还可以直接统计文件系统的碎片评分。比如,在得到每个Segment所对应的数量1之后,可以将所有每个Segment所对应的数量1叠加,得到总数量1。在得到每个Segment所对应的数量2之后,可以将所有每个Segment所对应的数量2叠加,得到总数量2。然而,依然利用上述公式1计算文件系统的碎片评分。当然,计算文件系统的碎片评分时,上述Scorefrag指代文件系统对应的碎片评分。Block1为统计出的总数量1,Blockfrag为统计出的总数量2。
通过上述实施例,电子设备可以计算出文件系统的初始分数,也即,文件系统挂载后,该文件系统对应的碎片评分。在计算出初始分数之后,可以将上述文件系统的初始分数存储在指定的存储位置,比如,通过proc文件系统存储到内存空间中的指定位置1。在另一些实施例中,也可以通过proc文件系统将计算初始分数过程中,产生的中间数据(如,各Segment对应的数量1、数量2,再如,Segment对应的碎片评分等),也可以存储到内存空间中的指定位置1。
可以理解的,在电子设备运行,上层应用会不断针对文件系统中的数据进行操作,比如,读取文件系统中的文件、向文件系统中写入新文件以及删除文件系统中的文件等。这些针对文件系统中文件的操作,都可能改变文件系统的碎片化程度。也就是说,在计算出初始分数之后,随着电子设备的运行时间变化,文件系统实际的碎片化程度也会改变。在此场景下,电子设备还需要实时更新文件系统对应的碎片评分,也即,电子设备进入实时更新分数的阶段。
在一些实施例中,在电子设备进入实时更新分数的阶段之后,电子设备检测到任一Segment中存储的数据发生变化,可以触发更新文件系统的碎片评分。
其中,上述Segment中存储的数据发生变化包括以下两种场景:
场景1:出现Segment中的数据都被清除,或者说,Segment被废弃的场景。例如,上层应用指示删除文件a,文件系统中段(Segment)a中存储的数据均是文件a中的数据,文件系统响应于删除文件a的指示,可以将段a中存储的数据都删除,也即,该段a被废弃,段a再次变为未写状态。
在一些实施例中,检测到上述场景1时,更新文件系统的碎片评分的方式可以是:将被清除的Segment对应的碎片评分置为0,然后,重新统计文件系统的碎片评分。
在一些实施例中,电子设备在每次计算出文件系统对应的碎片评分之后,都会将计算该碎片评分的过程中,得到的中间数据(如,各个Segment对应的碎片评分,或者,各个Segment对应的数量1和数量2)存储到指定位置1。
继续以段a中数据都被清除的场景为例。在电子设备确定出段a中数据被清除之后,电子设备可以从指定位置1中读取中间数据。可以理解的,被读取到的中间数据包括相邻上一次计算文件系统的碎片评分时,得到的各个Segment对应的碎片评分,或者Segment对应的数量1和数量2。
在读取到的中间数据是各个Segment的碎片评分的情况下,可以将中间数据中,段a所对应的碎片评分置为0,得到新的中间数据。可理解地,上述新的中间数据中还包括未被操作的Segment所对应的碎片评分,未被操作的Segment的碎片评分,相比于之前未改变。
然后,将新的中间数据中的碎片评分相加,得到文件系统对应的碎片评分。然后,将新的碎片评分和中间数据更新到指定位置1。
比如,读取到的中间数据中包括:段a的碎片评分(412分)、段b的碎片评分(500分)以及段c的碎片评分(318分)。上述中间数据所对应的文件系统的碎片评分为1230分。在段a中的数据被清除之后,电子设备可以将中间数据中的段a的碎片评分置为0,得到新的中间数据。比如,新的中间数据包括:段a的碎片评分(0分)、段b的碎片评分(500分)以及段c的碎片评分(318分)。此时,电子设备可以根据新的中间数据,确定文件系统新的碎片评分为818分。另外,电子设备还可以将新的中间数据以及碎片评分(818),更新到指定位置1,替代原中间数据(段a的碎片评分、段b的碎片评分以及段c的碎片评分)以及原碎片评分(1230分)。
在读取到的中间数据是各个Segment的数量1和数量2的情况下,可以将中间数据中,段a所对应的数量1和数量2置都为0,得到新的中间数据。可理解地,上述新的中间数据中还包括未被操作的Segment所对应的数量1和数量2,未被操作的Segment的数量1和数量2,相比于之前未改变。
然后,根据新的中间数据中各Segment对应的数量1和数量2,结合前述公式1,重新计算文件系统对应的碎片评分。最后,将重新计算出的碎片评分以及对应的新的中间数据,更新到指定位置1中,替代原碎片评分以及对应的中间数据。
场景2:出现的数据更新的情况。比如,出现未写状态的数据块被写入数据的场景,也即,Segment中出现状态信息由未写状态变为已写状态的数据块。再比如,出现已写状态的数据块中的存储数据被擦除的场景,也即,Segment中出现状态信息由已写状态变为未写状态的数据块。
在一些实施例中,检测到上述场景2时,更新文件系统的碎片评分的方式可以是:将数据更新的Segment对应的碎片评分删除,然后,重新计算Segment对应的碎片评分,最后,重新统计文件系统的碎片评分。
以段b中数据被更新的场景为例。在电子设备确定出段b中数据被更新之后,电子设备可以从指定位置1中读取中间数据。可以理解的,被读取到的中间数据为相邻上一次计算文件系统的碎片评分时,得到的各个Segment对应的碎片评分,或者Segment对应的数量1和数量2。
在读取到的中间数据是各个Segment的碎片评分的情况下,可以将中间数据中,段b所对应的碎片评分置删除,然后,按照段b中各个数据块更新后的状态信息,重新计算段b对应的碎片评分,得到新的中间数据。该新的中间数据中包含重新计算出的Segment对应的碎片评分,也包括未重新计算的Segment对应的碎片评分。这样,根据新的中间数据,可以计算出文件系统更新后的碎片评分。
比如,读取到的中间数据中包括:段a的碎片评分(412分)、段b的碎片评分(500分)以及段c的碎片评分(318分)。上述中间数据所对应的文件系统的碎片评分为1230分。在段b中的数据被更新之后,电子设备可以先删除中间数据中的段b的碎片评分。然后,重新依据段b中的数据块的状态信息,计算段b对应的碎片评分(计算过程可参考前述实施例,在此不再赘述),这样,就可以得到新的中间数据。例如,在计算出段b的碎片评分为512分的情况下,得到的新的中间数据包括段a的碎片评分(412分)、段b的碎片评分(512分)以及段c的碎片评分(318分)。通过上述新的中间数据,就可以得到文件系统的碎片评分为1242分。
另外,还可以将新的中间数据以及碎片评分(1242分),更新到指定位置1,替代原中间数据(段a的碎片评分、段b的碎片评分以及段c的碎片评分)以及原碎片评分(1230分)。
在读取到的中间数据是各个Segment的数量1和数量2的情况下,可以重新统计段b对应的数量1和数量2,然后,利用新统计出的段b所对应的数量1和数量2,替代原中间数据中段b对应的数量1和数量2,得到新的中间数据。然后,根据新的中间数据中各Segment对应的数量1和数量2,结合前述公式1,重新计算文件系统对应的碎片评分。最后,将重新计算出的碎片评分以及对应的新的中间数据,更新到指定位置1中,替代原碎片评分以及对应的中间数据。
在可能的实施例中,在上层应用指示操作文件系统中数据时,如果需要依次变更多个数据块的状态信息,比如,指示往文件系统中写入一个新文件,该新文件需要占用N据块进行存储,那么往任意一个数据块写入数据时,都可以触发重新计算一次文件系统对应的碎片评分。也即,在N个数据块被写入数据的情况下,可以触发N次计算文件系统对应的碎片评分,对应地指定位置1中的碎片评分也会被更新N次。其中,N为正整数。
在一些实施例中,在电子设备进入更新分数的阶段之后,电子设备还可以在特定场景下,触发更新文件系统的碎片评分。
其中,上述特定场景可以是电子设备检测到系统时间达到预配置的更新时间点。比如,文件系统可以每间隔预设周期来执行一次碎片评分更新。这样,在每间隔预设周期就生成一更新请求,并基于每次生成的更新请求,触发更新文件系统对应的碎片评分。其中,该预设周期可以为12小时、24小时或48小时等,预设周期的具体时长可根据实际情况进行设定,本申请对此不作限定。
另外,上述特定场景还可以是检测到用户主动触发针对文件系统的垃圾回收场景。比如,在检测到用户通过触控电子设备的触控显示屏、按压物理按键、声控、手势控制等方式,向电子设备输入垃圾回收请求。电子设备中的文件系统每次在获取到该垃圾回收请求之后,就执行一次更新文件系统的碎片评分。
上述特定场景还可以是检测到文件系统中当前剩余的可用存储空间不足的场景,比如,当文件系统确定可用存储空间的大小小于预设阈值(如7GB)时,触发更新文件系统的碎片评分。
另外,电子设备在检测到上述例举的特定场景之后,可以持续记录或标记存储数据发生变化的Segment,也即,数据块的状态信息发生改变的Segment,如称为目标段。在检测到特定场景之后,可以重新计算目标段所对应的碎片评分,计算过程可参考前述实施例,在此不再赘述。然后,根据重算出的目标段的碎片评分,和未进行重计算的Segment的碎片评分,计算文件系统的碎片评分。在重新算出文件系统的碎片评分之后,还可以清除被记录或标记的目标段,然后,在下一次检测到特定场景之前,重新记录或标记存储数据发生变化的Segment。
这样,文件系统的碎片评分可以动态更新,也能准确地指示不同文件系统中实时的碎片化程度。
可以理解的,上述文件系统的碎片评分可以指示文件系统的碎片化程度,但还不能直接反应存储性能的变化情况。也就是,上述文件系统的碎片评分还不能直接作为文件系统的碎片化指标值。
在本申请实施例中,电子设备在得到文件系统的碎片评分之后,还可以获取文件系统对应的修正系数。然后,根据文件系统的碎片评分和修正系数,确定文件系统的碎片化指标值。上述碎片化指标值可以是上述碎片评分经过修正系数的修正之后得到的数值,也就是说,该碎片化指标值也会跟随着文件系统的碎片化程度进行变化,同时,该碎片化指标值与存储性能的变化情况之间能呈线性关系。
其中,修正系数可以包括第一修正系数和第二修正系数。
在一些实施例中,该第一修正系数可以是根据Segment中数据块的数量确定的修正系数。示例性地,第一修正系数=num-1+num。其中,num为Segment中数据块的数量。
作为一种实现方式,电子设备可以从文件系统的Superblock中,获取描述Segment大小以及描述数据块大小的信息,然后,根据Segment大小与数据块大小,确定每一个Segment中包含的数据块的数量,也即,num。在得到Segment中包含的数据块的数量之后,也就可以计算出对应的第一修正系统。比如,确定Segment中包含的数据块的数量(num)为512个,那么得到的第一修正系数为1023。
在一些实施例中,该第二修正系数可以是根据Segment的数量确定的修正系数。示例性地,上述第二修正系数可以等于文件系统中Segment的总数量。
作为一种实现方式,电子设备可以通过Segment Info Table确定文件系统中已使用的Segment和未使用的Segment。然后,根据已使用的Segment数量和未使用的Segment数量叠加,得到第二修正系数。
在一些实施例中,在得到文件系统的碎片评分、第一修正系统和第二修正系数之后,可以利用下述公式2:
计算文件系统的碎片化指标值。其中,Rfrag代表计算出的碎片化指标值,Score代表文件系统的碎片评分,(num-1+num)代表第一修正系统,num代表Segment中包含的数据块的数量,(segdirty+segfree)代表第二修正系数,segdirty代表已使用的Segment数量,segfree代表未使用的Segment数量。
可以理解的,上述第一修正系数和第二修正系数可以是通过大量测试确定出的经验系数。通过上述第一修正系数和第二修正系数,修正得到的碎片化指标值与存储性能(读写速度)变化情况呈线性关系。
参考表1,表1包括启用本申请实施例中提供的碎片化指标值之后,实测出文件系统的存储性能与碎片化指标值之间的数据变化情况。
表1
在文件系统的碎片化指标值由0.06%变为36%的情况下,也即,碎片化指标值的变化量为36%左右的场景中,文件系统的碎片化指标值为0.06%时,进行随机读的速度为133.25MB/s,进行随机写的速度为145.48MB/s。
在文件系统的碎片化指标值逐步增大到36%时,进行随机读的速度为103.83MB/s,进行随机写的速度为113.43MB/s。总之,无论是随机读还是随机写,文件系统的存储性能(读/写速度)都下降了22%。所下降的存储性能与碎片化指标值的变化量几乎呈线性关系,也即,该碎片化指标值的变化情况,可以灵敏地反应存储性能的改变情况。
另外,电子设备还可以将计算出的碎片化指标值,通过PROC文件系统更新到内存中的指定位置,如,指定位置2。随着文件系统对应的碎片化指标值不断更新,该指定位置2中存储的碎片化指标值也不断更新。在将文件系统的碎片化指标值更新到指定位置2之后,电子设备中其他功能模块(如,f2fs碎片整理模块,再如,垃圾回收模块)都可以获取该碎片化指标值,并可以将该碎片化指标值应用到文件系统的碎片化整理流程中。比如,电子设备根据上述碎片化指标值,评估电子设备是否应该针对文件系统进行垃圾回收处理。在碎片化指标值超过预设值的场景,确定需要针对文件系统进行垃圾回收处理。当然,除了电子设备中的功能模块可以访问到指定位置2,获取到对应额碎片化指标值之外,外部的设备也可以访问到指定位置2,获取到对应额碎片化指标值。
另外,上述实施例中提及的步骤,都可以由电子设备中程序模块执行。示例性地,电子设备可以包括系统服务、F2FS挂载函数、段管理器、映射建立函数、评分计算模块和评分更新模块等。
如图11所示,在电子设备开机之后,开机流程进入挂载文件系统的环节时,可以触发系统服务调用F2FS挂载函数。在调用F2FS挂载函数之后,可以进入挂载文件系统的流程。在挂载文件系统的流程中,F2FS挂载函数可以加载F2FS文件系统的组件。在将F2FS文件系统加载到内存空间之后,可以启动F2FS文件系统对应的段管理器。该段管理器可以调用映射建立函数,建立文件系统中数据块的物理地址与逻辑地址(或称为内存地址)之间的映射关系。在映射建立函数建立映射关系的同时,映射建立函数还可以触发调用评分计算模块,通过评分计算模块计算文件系统的碎片化指标值。也就是,借助挂载文件系统过程中需要遍历每一个数据块的环节(也即,建立映射关系的环节),获取每一个数据块的状态信息,并计算文件系统的碎片化指标值。在得到碎片化指标值的同时,避免额外增加遍历数据块的开销。
然后,在电子设备运行过程中,段管理器接收到上层应用对数据块的操作指令(数据读指令、数据写指令、数据删除指令等)之后,如果确定任意Segment中数据块的状态信息变化,都可以触发调用评分更新模块,重新计算文件系统对应的碎片化指标值。比如,段管理器确定出现Segment中数据被清除,那么按照上述检测到场景1的方式,更新文件系统的碎片评分,进而,更新文件系统的碎片化指标值。比如,段管理器确定出现Segment中数据被更新,那么按照上述检测到场景2的方式,更新文件系统的碎片评分,进而,更新文件系统的碎片化指标值。
在本申请实施例中,还提供了一种文件系统管理方法,如图12所示,上述方法可以包括以下步骤:
S101,针对多个段区域中的每个段区域,根据段区域中数据块的状态信息,确定段区域中数据存储的碎片化程度。
其中,上述状态信息包括已写状态或未写状态,上述段区域也即文件系统中的Segment。上述段区域中数据存储的碎片化程度,可以指示数据在段区域中的分布零散程度。示例性地,上述碎片化程度可以由前述实施例中提到的碎片评分进行指示,这样,上述碎片化程度可以是Segment对应的第一分数(碎片分数)。另外,计算碎片评分的方式可参考前述实施例,在此不再赘述。又示例性地,上述碎片化程度可以由预先设定的碎片化等级进行指示。比如,预先配置n个碎片化等级,每个等级对应一个碎片评分区间,这样,根据各个Segment对应的碎片评分,就可以确定对应的碎片化等级。
示例性地,电子设备可以根据段区域中数据块的状态信息,确定出第一类数据块(如,满足条件1的数据块)的第三数量(如,数量1)和第二类数据块(如,满足条件2的数据块)的第四数量(如,数量2)。
然后,利用第一权重(如,权重值1)对第三数量进行加权,利用第二权重(如,权重值3)对第四数量进行加权,叠加加权处理后的第三数量和第四数量,得到第一分数。可以理解的,第一分数由数据块的状态信息决定,在段区域中任意的数据块的状态信息变化的情况下,对应的第一分数也变化。
又示例性地,电子设备还可以根据段区域中数据块的状态信息和/或相邻数据块的状态信息,确定数据块对应的分数值。其中,在数据块的状态信息为已写状态时,对应的分数值为第一值(如,权重值1);在数据块的状态信息为未写状态,且所述相邻数据块中包含一个已写状态的数据块时,确定对应的分数值为第二值(如,权重值3)。在数据块的状态信息为未写状态,且相邻数据块中包含二个已写状态的数据块时,确定对应的分数值为第三值(如,权重值4)。在数据块的状态信息为未写状态,且相邻数据块中包含二个未写状态的数据块时,确定对应的所述分数值为第四值(如,权重值2)。其中,所述第四值小于第一值,第一值小于第二值,第二值小于第三值。
在确定每个数据块的分数值之后,电子设备可以根据每一个数据块的分数值,确定段区域对应的第一分数;其中,第一分数是指示段区域中数据存储的碎片化程度的量化值,在所述段区域中任意的所述数据块的状态信息变化的情况下,对应的所述第一分数也变化。
S102,根据多个段区域中数据存储的碎片化程度,评估文件系统中数据存储的第一碎片化程度。
示例性地,上述碎片化程度为碎片评分时,可以通过叠加各个段区域的碎片评分的方式,确定文件系统中数据对应的第一碎片化程度(也即,第二分数)。
又示例性地,上述碎片化程度为碎片化等级时,通过预设规则,确定文件系统对应第一碎片化程度。比如,选择对应的Segment数量最多的碎片化等级,作为文件系统对应第一碎片化程度。
S103,根据第一碎片化程度和文件系统对应的修正因子,确定文件系统对应的第一碎片化指标值。
其中,第一碎片化指标值,可以指示当前文件系统的碎片化比率。该文件系统对应的修正因子可以是前述实施例中的修正系数,可以是根据文件系统中的第一数量和第二数量确定的数值,第一数量为文件系统中段区域的数量,也即,有效Segment和无效Segment之间的总和,第二数量为单个所述段区域中数据块的数量,也即,前述实施例中的num。
S104,在第一碎片化指标值大于预设值时,触发针对文件系统的垃圾回收处理。
在一些实施例中,电子设备可以在开机挂载文件系统时,启动第一碎片化指标值的计算。也就是,在电子设备开机期间,启动挂载文件系统;在挂载所述文件系统期间,利用“建立数据块物理地址和逻辑地址之间映射关系的环节”需要遍历每一个所述数据块的这一点,在遍历到每一个数据块的同时,获取数据块对应的所述状态信息,然后,开始执行上述S101,计算出第一碎片化指标值。
在一些实施例中,电子设备还可以在特定场景下,触发计算第一碎片化指标值。也就是,在第一条件下,可以触发遍历所述文件系统中每一个所述数据块,确定每一个所述数据块对应的所述状态信息,然后,开始执行上述S101,计算出第一碎片化指标值。
示例性地,上述第一条件可以包括以下任意一个条件项:
(1)检测到针对文件系统中的第一操作,第一操作包括指示向所述文件系统写入数据的操作,或者,将所述文件系统中已存储数据擦除的操作。
(2)电子设备中空闲的内存空间大小小于第一内存阈值。
在多个段区域中包括第一段区域和第二段区域的场景下,在确定所述文件系统对应的第一碎片化指标值之后,所述方法还包括:
接收针对第一段区域的第二操作,第二操作包括指示向所述第一段区域写入数据的操作,或者,将所述第一段区域中已存储数据擦除的操作。响应于所述第二操作,重新确定第一段区域中数据块对应的状态信息。
在一些实施例中,在第一段区域中包含至少一个第三类数据块的情况下,重新确定第一段区域中数据存储的碎片化程度,第三类数据块包括状态信息由已写状态变为未写状态的数据块,也包括状态信息由未写状态变为已写状态的数据块。重新确定第一段区域中数据存储的碎片化程度的方式可参考上述S101的实现细节,在此不再赘述。
在一些实施例中,根据第二段区域中数据存储的碎片化程度和所述第一段区域中数据存储的碎片化程度,重新评估所述文件系统中数据存储的第二碎片化程度。可以理解的,第二段区域指代文件系统中未出现第三类数据块的Segment,由于该Segment中数据块的状态未变化,那么对应的碎片化程度也会变,可以沿用上一次评估出的碎片化程度。
在一些实施例中,电子设备还可以根据第二碎片化程度和文件系统对应的修正因子,确定所述文件系统对应的第二碎片化指标值。
上述过程的实现细节,可参考S103,在此不再赘述。
在一些实施例中,在确定出文件系统对应的所述第一碎片化指标值之后,将第一碎片化指标值存储到第一存储位置,也即,前述实施例中的指定位置2。在确定出文件系统对应的所述第二碎片化指标值之后,将第二碎片化指标值更新到所述第一存储位置。这样,第一存储位置中的碎片化指标值可以动态更新。
在一些实施例中,第一碎片化指标值利用如下公式(也即,前述实施例中的公式2)确定:
其中,Rfrag为所述第一碎片化指标值,Score为所述第二分数,(num-1+num)β为所述修正因子,num为所述第二数量,β为所述第一数量。
本申请实施例还提供一种电子设备,该电子设备可以包括:存储器和一个或多个处理器。该存储器和处理器耦合。该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令。当处理器执行计算机指令时,可使得电子设备执行上述实施例中的各个步骤。当然,该电子设备包括但不限于上述存储器和一个或多个处理器。
本申请实施例还提供一种芯片系统,该芯片系统可以应用于前述实施例中的终端设备。如图13所示,该芯片系统包括至少一个处理器2201和至少一个接口电路2202。该处理器2201可以是上述电子设备中的处理器。处理器2201和接口电路2202可通过线路互联。该处理器2201可以通过接口电路2202从上述电子设备的存储器接收并执行计算机指令。当计算机指令被处理器2201执行时,可使得电子设备执行上述实施例中的各个步骤。当然,该芯片系统还可以包含其他分立器件,本申请实施例对此不作具体限定。
在一些实施例中,通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请实施例的具体实施方式,但本申请实施例的保护范围并不局限于此,任何在本申请实施例揭露的技术范围内的变化或替换,都应涵盖在本申请实施例的保护范围之内。因此,本申请实施例的保护范围应以所述权利要求的保护范围为准。
Claims (13)
1.一种文件系统管理方法,其特征在于,应用于电子设备,所述电子设备中包括文件系统,所述文件系统中包括多个用于存储数据的段区域,所述段区域包括多个数据块,所述方法包括:
针对多个段区域中的每个段区域,根据所述段区域中数据块的状态信息,确定所述段区域中数据存储的碎片化程度,其中,所述状态信息包括已写状态或未写状态;
根据多个所述段区域中数据存储的碎片化程度,评估所述文件系统中数据存储的第一碎片化程度;
根据所述第一碎片化程度和所述文件系统对应的修正因子,确定所述文件系统对应的第一碎片化指标值;所述文件系统对应的修正因子是根据所述文件系统中的第一数量和第二数量确定的数值,所述第一数量为所述文件系统中所述段区域的数量,所述第二数量为单个所述段区域中数据块的数量;
在所述第一碎片化指标值大于预设值时,触发针对所述文件系统的垃圾回收处理。
2.根据权利要求1所述的方法,其特征在于,所述根据所述段区域中数据块的状态信息,确定所述段区域中数据存储的碎片化程度,包括:
根据所述段区域中数据块的状态信息,确定出第一类数据块的第三数量和第二类数据块的第四数量,其中,所述第一类数据块是状态信息为所述已写状态的数据块,所述第二类数据块是状态信息为所述已写状态,且相邻数据块的状态信息为所述未写状态的数据块,相邻的两个数据块所对应的逻辑地址相邻;
根据加权处理后的所述第三数量和所述第四数量,确定第一分数,所述第一分数是指示所述段区域中数据存储的碎片化程度的量化值,在所述段区域中任意的所述数据块的状态信息变化的情况下,对应的所述第一分数也变化。
3.根据权利要求2所述的方法,其特征在于,在所述确定第一分数之前,所述方法包括:
利用第一权重对所述第三数量进行加权;
利用第二权重对所述第四数量进行加权;
所述确定第一分数,包括:叠加加权处理后的所述第三数量和第四数量,得到所述第一分数;其中,所述第一权重的取值为1,所述第二权重的取值为2。
4.根据权利要求1所述的方法,其特征在于,所述根据所述段区域中数据块的状态信息,确定所述段区域中数据存储的碎片化程度,包括:
根据所述段区域中所述数据块的状态信息和/或相邻数据块的状态信息,确定所述数据块对应的分数值,相邻的两个数据块所对应的逻辑地址也相邻;
根据每一个所述数据块的分数值,确定所述段区域对应的第一分数;其中,所述第一分数是指示所述段区域中数据存储的碎片化程度的量化值,在所述段区域中任意的所述数据块的状态信息变化的情况下,对应的所述第一分数也变化;
其中,在所述数据块的状态信息为已写状态时,对应的所述分数值为第一值;
在所述数据块的状态信息为未写状态,且所述相邻数据块中包含一个已写状态的数据块时,确定对应的所述分数值为第二值;
在所述数据块的状态信息为未写状态,且所述相邻数据块中包含二个已写状态的数据块时,确定对应的所述分数值为第三值;
在所述数据块的状态信息为未写状态,且所述相邻数据块中包含二个未写状态的数据块时,确定对应的所述分数值为第四值;其中,所述第四值小于所述第一值,所述第一值小于所述第二值,所述第二值小于所述第三值。
5.根据权利要求1-4中任一项所述的方法,其特征在于,在所述确定所述段区域中数据存储的碎片化程度之前,所述方法还包括:
在所述电子设备开机期间,启动挂载所述文件系统;
在挂载所述文件系统期间,遍历所述文件系统中每一个所述数据块;
在遍历到每一个所述数据块的同时,获取所述数据块对应的所述状态信息。
6.根据权利要求1-4中任一项所述的方法,其特征在于,在所述确定所述段区域中数据存储的碎片化程度之前,所述方法还包括:
在第一条件下,遍历所述文件系统中每一个所述数据块,确定每一个所述数据块对应的所述状态信息。
7.根据权利要求6所述的方法,其特征在于,所述第一条件包括以下任意一项:
检测到针对所述文件系统中的第一操作,所述第一操作包括指示向所述文件系统写入数据的操作,或者,将所述文件系统中已存储数据擦除的操作;
所述电子设备中空闲的内存空间大小小于第一内存阈值。
8.根据权利要求1-4中任一项所述的方法,其特征在于,所述多个段区域中包括第一段区域和第二段区域,在所述确定所述文件系统对应的第一碎片化指标值之后,所述方法还包括:
接收针对所述第一段区域的第二操作,所述第二操作包括指示向所述第一段区域写入数据的操作,或者,将所述第一段区域中已存储数据擦除的操作;
响应于所述第二操作,重新确定所述第一段区域中数据块对应的状态信息;
在所述第一段区域中包含至少一个第三类数据块的情况下,重新确定所述第一段区域中数据存储的碎片化程度,所述第三类数据块包括所述状态信息由已写状态变为未写状态的数据块,以及所述状态信息由未写状态变为已写状态的数据块;
根据所述第二段区域中数据存储的碎片化程度和所述第一段区域中数据存储的碎片化程度,重新评估所述文件系统中数据存储的第二碎片化程度;
根据所述第二碎片化程度和所述文件系统对应的修正因子,确定所述文件系统对应的第二碎片化指标值。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
在确定出所述文件系统对应的所述第一碎片化指标值之后,将所述第一碎片化指标值存储到第一存储位置;
在确定出所述文件系统对应的所述第二碎片化指标值之后,将所述第二碎片化指标值更新到所述第一存储位置。
10.根据权利要求1所述的方法,其特征在于,所述第一碎片化指标值利用如下公式确定:
其中,Rfrag为所述第一碎片化指标值,Score为所述第二分数,(num-1+num)β为所述修正因子,num为所述第二数量,β为所述第一数量。
11.一种电子设备,其特征在于,电子设备包括一个或多个处理器和存储器;所述存储器与处理器耦合,存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当一个或多个处理器执行计算机指令时,所述一个或多个处理器,用于执行如权利要求1-10中任一项所述的方法。
12.一种计算机存储介质,其特征在于,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1-10中任一项所述的方法。
13.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,当其在计算机上运行时,使得计算机执行如权利要求1-10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211469572.5A CN116701298B (zh) | 2022-11-22 | 2022-11-22 | 一种文件系统管理方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211469572.5A CN116701298B (zh) | 2022-11-22 | 2022-11-22 | 一种文件系统管理方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116701298A true CN116701298A (zh) | 2023-09-05 |
CN116701298B CN116701298B (zh) | 2024-06-07 |
Family
ID=87842124
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211469572.5A Active CN116701298B (zh) | 2022-11-22 | 2022-11-22 | 一种文件系统管理方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116701298B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117331472A (zh) * | 2023-11-30 | 2024-01-02 | 荣耀终端有限公司 | 碎片处理方法及相关装置 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006027771A2 (en) * | 2004-09-08 | 2006-03-16 | Koby Biller | Measuring fragmentation on direct access storage devices and defragmentation thereof |
CN102024034A (zh) * | 2010-11-26 | 2011-04-20 | 中国科学院声学研究所 | 一种面向高清媒体的嵌入式文件系统的碎片处理方法 |
US8818966B1 (en) * | 2010-12-30 | 2014-08-26 | Emc Corporation | Continuous file defragmentation during file over-writes |
US20150095292A1 (en) * | 2013-10-02 | 2015-04-02 | International Business Machines Corporation | Data fragmentation tuning and candidacy persistence |
US9195672B1 (en) * | 2013-03-14 | 2015-11-24 | Emc Corporation | Selective fragmentation repair |
CN105589812A (zh) * | 2015-12-16 | 2016-05-18 | 成都华为技术有限公司 | 磁盘碎片整理方法、装置及主机 |
CN107729558A (zh) * | 2017-11-08 | 2018-02-23 | 郑州云海信息技术有限公司 | 文件系统碎片整理的方法、系统、装置及计算机存储介质 |
WO2020000492A1 (zh) * | 2018-06-30 | 2020-01-02 | 华为技术有限公司 | 一种存储碎片管理方法及终端 |
CN111258972A (zh) * | 2020-01-10 | 2020-06-09 | Oppo广东移动通信有限公司 | 闪存文件系统碎片化的评估方法、装置以及电子设备 |
CN111382129A (zh) * | 2020-03-09 | 2020-07-07 | Oppo(重庆)智能科技有限公司 | 文件碎片整理方法、装置、存储介质和相关设备 |
CN112527694A (zh) * | 2020-12-15 | 2021-03-19 | 深圳星火半导体科技有限公司 | 碎片化程度告警方法及装置 |
CN113961517A (zh) * | 2020-07-21 | 2022-01-21 | 中兴通讯股份有限公司 | 文件系统管理方法、电子设备及存储介质 |
US20220334739A1 (en) * | 2021-04-15 | 2022-10-20 | Oracle International Corporation | Fragmentation measurement solution |
-
2022
- 2022-11-22 CN CN202211469572.5A patent/CN116701298B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006027771A2 (en) * | 2004-09-08 | 2006-03-16 | Koby Biller | Measuring fragmentation on direct access storage devices and defragmentation thereof |
CN102024034A (zh) * | 2010-11-26 | 2011-04-20 | 中国科学院声学研究所 | 一种面向高清媒体的嵌入式文件系统的碎片处理方法 |
US8818966B1 (en) * | 2010-12-30 | 2014-08-26 | Emc Corporation | Continuous file defragmentation during file over-writes |
US9195672B1 (en) * | 2013-03-14 | 2015-11-24 | Emc Corporation | Selective fragmentation repair |
US20150095292A1 (en) * | 2013-10-02 | 2015-04-02 | International Business Machines Corporation | Data fragmentation tuning and candidacy persistence |
CN105589812A (zh) * | 2015-12-16 | 2016-05-18 | 成都华为技术有限公司 | 磁盘碎片整理方法、装置及主机 |
CN107729558A (zh) * | 2017-11-08 | 2018-02-23 | 郑州云海信息技术有限公司 | 文件系统碎片整理的方法、系统、装置及计算机存储介质 |
WO2020000492A1 (zh) * | 2018-06-30 | 2020-01-02 | 华为技术有限公司 | 一种存储碎片管理方法及终端 |
CN111258972A (zh) * | 2020-01-10 | 2020-06-09 | Oppo广东移动通信有限公司 | 闪存文件系统碎片化的评估方法、装置以及电子设备 |
CN111382129A (zh) * | 2020-03-09 | 2020-07-07 | Oppo(重庆)智能科技有限公司 | 文件碎片整理方法、装置、存储介质和相关设备 |
CN113961517A (zh) * | 2020-07-21 | 2022-01-21 | 中兴通讯股份有限公司 | 文件系统管理方法、电子设备及存储介质 |
CN112527694A (zh) * | 2020-12-15 | 2021-03-19 | 深圳星火半导体科技有限公司 | 碎片化程度告警方法及装置 |
US20220334739A1 (en) * | 2021-04-15 | 2022-10-20 | Oracle International Corporation | Fragmentation measurement solution |
Non-Patent Citations (2)
Title |
---|
段隆振, 林伟伟, 黄水源: "ORACLE数据库空闲碎片", 南昌大学学报(理科版), no. 02, pages 101 - 104 * |
高振华;陈浩一;王维峥;: "一种卫星数据广播系统端站存储管理方案设计", 电子制作, no. 13, pages 87 - 89 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117331472A (zh) * | 2023-11-30 | 2024-01-02 | 荣耀终端有限公司 | 碎片处理方法及相关装置 |
CN117331472B (zh) * | 2023-11-30 | 2024-05-07 | 荣耀终端有限公司 | 碎片处理方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN116701298B (zh) | 2024-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240054079A1 (en) | Memory Management Method and Apparatus, Electronic Device, and Computer-Readable Storage Medium | |
CN111506262B (zh) | 一种存储系统、文件存储和读取方法及终端设备 | |
CN110554999B (zh) | 基于日志式文件系统和闪存设备的冷热属性识别和分离方法、装置以及相关产品 | |
US20060173913A1 (en) | Image Processing Apparatus and Image Processing Method | |
CN114185494B (zh) | 内存匿名页的处理方法、电子设备及可读存储介质 | |
CN111274039B (zh) | 内存回收方法、装置、存储介质及电子设备 | |
US11132145B2 (en) | Techniques for reducing write amplification on solid state storage devices (SSDs) | |
EP4134829B1 (en) | Page swapping method, storage system, and electronic device | |
CN116701298B (zh) | 一种文件系统管理方法及电子设备 | |
CN112711387B (zh) | 缓冲区容量的调整方法、装置、电子设备及可读存储介质 | |
CN114840450B (zh) | 一种存储空间整理方法及电子设备 | |
CN113590501A (zh) | 一种数据存储方法及相关设备 | |
WO2019128542A1 (zh) | 应用处理方法、电子设备、计算机可读存储介质 | |
CN113778662A (zh) | 内存回收方法及装置 | |
CN117891754B (zh) | 处理器Cache结构的缓存方法、计算子系统以及智能计算平台 | |
CN113485642A (zh) | 数据缓存方法及装置 | |
CN115981573B (zh) | 数据管理方法、电子设备及计算机可读写存储介质 | |
CN116166573B (zh) | 控制内存回收的方法、电子设备及存储介质 | |
CN111459848B (zh) | 一种文件碎片的整理方法、装置、存储介质及电子设备 | |
CN116049021B (zh) | 存储空间管理方法、电子设备及计算机可读存储介质 | |
CN112965920A (zh) | 内存管理方法、装置、电子设备以及存储介质 | |
CN117369712B (zh) | 垃圾回收的方法、页面存储的方法和电子设备 | |
CN117724828B (zh) | 一种内存管理器的管理方法及电子设备 | |
CN116662222B (zh) | 缓存管理方法及相关设备 | |
CN116049113B (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 |