CN109656885B - 存储空间监控方法及装置、电子终端、存储介质 - Google Patents

存储空间监控方法及装置、电子终端、存储介质 Download PDF

Info

Publication number
CN109656885B
CN109656885B CN201811550567.0A CN201811550567A CN109656885B CN 109656885 B CN109656885 B CN 109656885B CN 201811550567 A CN201811550567 A CN 201811550567A CN 109656885 B CN109656885 B CN 109656885B
Authority
CN
China
Prior art keywords
occupancy rate
storage space
index node
data area
index
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
Application number
CN201811550567.0A
Other languages
English (en)
Other versions
CN109656885A (zh
Inventor
林进全
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN201811550567.0A priority Critical patent/CN109656885B/zh
Publication of CN109656885A publication Critical patent/CN109656885A/zh
Application granted granted Critical
Publication of CN109656885B publication Critical patent/CN109656885B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开提供了一种存储空间监控方法及装置、电子终端、计算机可读存储介质,属于计算机技术领域。该方法应用于电子终端,包括以下步骤:启动针对于存储空间的监控进程,其中,所述存储空间包括数据区与索引节点区,所述数据区用于存储文件,所述索引节点区用于存储文件的索引信息;通过所述监控进程获取索引节点占用率,所述索引节点占用率为索引节点区中已占用的索引节点与全部索引节点的比例;如果所述索引节点占用率超出预设阈值,则对所述存储空间进行清理处理。本公开可以实现对存储空间的索引节点区的监控管理,可以有效监控出存储空间非正常占用的情况,提高监控效率。

Description

存储空间监控方法及装置、电子终端、存储介质
技术领域
本公开涉及计算机技术领域,特别涉及一种存储空间监控方法、存储空间监控装置、电子终端及计算机可读存储介质。
背景技术
手机、电脑等电子终端的存储空间随着使用时间的推移,通常会越来越少,如果有恶意软件大量创建文件,则存储空间的消耗速度将大大加快,影响用户的正常使用。因此需要对存储空间进行监控。
现有的存储空间监控方法主要针对于存储空间的数据区进行监控,当可用的数据区容量过小,或者短时间内数据区内出现异常写入等情况时,向用户发出提示信息,或执行空间清理、文件删除等指令。然而,存储空间还包括大量的索引节点,当存储空间发生非正常占用的情况时,可能导致索引节点的可用容量过小,即使数据区还有足够的容量,也无法进行正常的文件或数据存储。因此,现有技术还存在待改进的地方。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开提供了一种存储空间监控方法、存储空间监控装置、电子终端及计算机可读存储介质,进而至少在一定程度上克服现有的存储空间监控方法无法对存储空间非正常占用的情况进行全面监控的问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的一个方面,提供一种存储空间监控方法,应用于电子终端,包括:启动针对于存储空间的监控进程,其中,所述存储空间包括数据区与索引节点区,所述数据区用于存储文件,所述索引节点区用于存储文件的索引信息;通过所述监控进程获取索引节点占用率,所述索引节点占用率为索引节点区中已占用的索引节点与全部索引节点的比例;如果所述索引节点占用率超出预设阈值,则对所述存储空间进行清理处理。
在本公开的一种示例性实施例中,所述方法还包括:通过所述监控进程获取所述存储空间的数据区占用率,所述数据区占用率为所述数据区中已占用的容量与所述数据区总容量的比例;如果所述索引节点占用率超出所述数据区占用率的程度满足预设条件,则生成关于所述存储空间的异常提示信息。
在本公开的一种示例性实施例中,所述如果所述索引节点占用率超出所述数据区占用率的程度满足预设条件,则生成关于所述存储空间的异常提示信息包括:计算所述索引节点占用率减去所述数据区占用率的差值,并计算所述差值与所述数据区占用率的百分比;如果所述百分比超出第一阈值,则生成关于所述存储空间的异常提示信息。
在本公开的一种示例性实施例中,所述预设阈值包括第三阈值;所述方法还包括:如果所述索引节点占用率超出第二阈值且未超出第三阈值,则生成关于所述存储空间的清理提示信息;其中,所述第二阈值小于所述第三阈值。
在本公开的一种示例性实施例中,所述对所述存储空间进行清理处理包括:清理所述存储空间中小于数据块大小的文件。
在本公开的一种示例性实施例中,所述通过所述监控进程获取索引节点占用率包括:所述监控进程周期性地调取索引节点查询接口,并通过所述索引节点查询接口获取所述索引节点占用率。
在本公开的一种示例性实施例中,所述索引节点查询接口包括索引节点可用容量查询接口与索引节点总容量查询接口。
根据本公开的一个方面,提供一种存储空间监控装置,应用于电子终端,包括:监控启动模块,用于启动针对于存储空间的监控进程,其中,所述存储空间包括数据区与索引节点区,所述数据区用于存储文件,所述索引节点区用于存储文件的索引信息;占用率获取模块,用于通过所述监控进程获取索引节点占用率,所述索引节点占用率为索引节点区中已占用的索引节点与全部索引节点的比例;异常处理模块,用于如果所述索引节点占用率超出预设阈值,则对所述存储空间进行清理处理。
根据本公开的一个方面,提供一种电子终端,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的方法。
根据本公开的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的方法。
本公开的示例性实施例具有以下有益效果:
启动针对于存储空间的监控进程,并通过监控进程获取索引节点占用率,如果索引节点占用率超出预设阈值,则进行相应的处理。一方面,提出了一种新的存储空间监控方法,可以有效地监控存储空间中索引节点区的使用情况,已保证索引节点区始终具有足够的可用空间,不影响存储空间的正常使用。另一方面,通过监控索引节点占用率,可以发现存储空间非正常使用的情况,例如数据区剩余大量空间而索引节点已满等情况,从而实现对于存储空间异常情况的全面监控,进一步保证其正常使用。
本公开的一种实施例中,在***中定义索引节点查询接口,使监控进程可以通过调取该接口获得查询数据,从而提高了存储空间监控的效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本示例性实施例中一种存储空间监控方法的流程图;
图2示出本示例性实施例中一种存储空间的示意图;
图3示出本示例性实施例中手机上进行存储空间监控的示意图;
图4示出本示例性实施例中另一种存储空间监控方法的流程图;
图5示出本示例性实施例中一种存储空间监控装置的结构框图;
图6示出本示例性实施例中一种用于实现上述方法的电子终端;
图7示出本示例性实施例中另一种用于实现上述方法的电子终端;
图8示出本示例性实施例中一种用于实现上述方法的计算机可读存储介质。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
在实际应用中,电子终端的操作***或者应用程序(包含恶意软件)可能产生大量的小文件,导致索引节点被占满,而此时数据区还有剩余空间。例如在一实际案例中,发现Android***的手机无法正常存取文件,手动开启vold进程(一种外部存储管理进程),并调用解析分区文件的fs_mgr进程,扫描存储空间,发现存储空间的索引节点占用情况为622592/622592,已经被写满,而数据区的占用情况为2137859/2485499,还有剩余空间,但此时存储空间已经无法正常工作。
鉴于上述情况,本公开的示例性实施例提供了一种存储空间监控方法,可以应用于计算机、手机、平板电脑等电子终端上,对电子终端的存储空间进行监控。其中,存储空间可以是电子终端的硬盘、内存等用于存储文件的介质。
参考图1所示,该存储空间监控方法可以包括以下步骤S110~S130:
步骤S110中,启动针对于存储空间的监控进程,其中,存储空间包括数据区与索引节点区,数据区用于存储文件,索引节点区用于存储文件的索引信息。
图2示出了本示例性实施例中一种存储空间的示意图。参考图2所示,存储空间200包括索引节点区210与数据区220,索引节点区由一个个索引节点(图中的2101、2102、2103等)组成,数据区220由一个个数据块(图中的2201~2207等)组成。数据区220用于存储文件或数据的实体,具体而言,在向存储空间200写入文件时,文件被写入到数据区220的数据块中。数据块为数据区的基本单元,其大小根据存储空间或操作***的类型而定,例如在Linux内核的操作***(如Fedora、Ubuntu、Android等)中,数据块大小通常为4KB,每个文件至少占用1个数据块;例如在图2中,文件221占用数据块2201,文件222占用数据块2202、2203、2204、2205,文件223占用数据块2206、2207。索引节点区210用于存储文件的索引信息,索引信息可以包括文件的创建者、文件的创建日期、文件的大小、文件在数据区的存储路径等信息,因此索引节点区210可视为存储空间的目录。每个文件的索引信息占用一个索引节点,例如在图2中,文件221的索引信息存放于索引节点2101,文件222的索引信息存放于索引节点2102,文件223的索引信息存放于索引节点2103。索引节点的大小也根据存储空间或操作***的类型而定,通常为128或256字节。需要说明的是,图2所示的存储空间仅为示例性的,在一些***中,除了索引节点区与数据区以外,存储空间还可能包括引导区等其他组成部分,本示例实施方式对此不做特别限定。
在Linux内核的操作***中,存储空间以Linux文件***为基础,包括inode区与数据区(block),inode区即索引节点区,由一个个inode组成,用于存储文件的元信息,元信息中包含了文件的索引信息;在Windows***的FAT文件***(File Allocation Table,通常包括FAT16与FAT32)中,存储空间包括文件分配表区(FAT区)与数据区(Data区),文件分配表区即索引节点区,用于记录文件所在的数据区位置。
监控进程可以是人为编写的脚本,也可以是***进程,通常运行于电子终端的***后台,可以设置为开机后自动启动,也可以响应于一定的触发事件而启动,例如用户手动开启,存储空间有文件写入或删除时自动开启等。
步骤S120中,通过监控进程获取索引节点占用率,索引节点占用率为索引节点区中已占用的索引节点与全部索引节点的比例。
监控进程用于对存储空间的状态进行监控管理。本示例性实施例中,监控进程可以获取索引节点的使用信息,主要包括索引节点占用率。通常在存储空间进行格式化时,索引节点区的总容量与每个索引节点的容量就已确定,因此索引节点的总数就已确定。在实际应用中,索引节点可能处于两种状态:写入索引信息,则处于已占用状态;未写入索引信息,则处于空的状态。索引节点占用率可以是已占用的索引节点与全部索引节点的数量比例,也可以是容量比例,由于每个索引节点的容量一致,且每个索引节点仅能写入一个文件的索引信息,写入了索引信息即表示该索引节点的容量被完全占用,因此数量比例与容量比例是相同的数值。举例而言,索引节点区中索引节点总数为622592,每个索引节点的容量为128B,因此索引节点区的总容量为622592*128B=79692KB,如果已占用的索引节点数量为161874,则按照数量比例计算的索引节点占用率为161874/622592=26%,按照容量比例计算的索引节点占用率为161874*128B/79692KB=26%,可见,两种方式计算得到的结果相同。
此外,监控节点也可以获取关于存储空间的其他使用信息,例如数据区占用率,各分区的占用率等,本示例实施方式对此不做特别限定。
监控进程可以对存储空间进行扫描,以得到上述信息,也可以从其他模块中提取上述信息。在一示例性实施例中,步骤S120也可以通过以下步骤实现:
监控进程周期性地调取索引节点查询接口,并通过索引节点查询接口获取索引节点占用率。
其中,索引节点查询接口可以包含查询方法、查询的数据属性、索引的方式以及查询事件,作为成员,为监控进程建立数据的对接。通过定义索引节点查询接口,可以更加方便的获取到索引节点占用率或其他相关数据,提高监控效率。
进一步的,在一示例性实施例中,索引节点查询接口可以包括索引节点可用容量查询接口与索引节点总容量查询接口,分别用于获取已占用的索引节点容量以及索引节点总容量,从而可以计算出索引节点占用率。
以Android***为例进行说明,文件***的查询接口通常是体结构成员变量mStat.f_favail和mStat.f_files,但没有对应的inode查询接口,可以自定义查询接口getAvailableInodesLong和getTotalInodesLong,通过监控其变化获知inode的使用情况。具体过程可以如以下代码所示:
/***The number of inodes that are free on the file system andavailable to*applications.This corresponds to the Unix{@code statvfs.f_favail}field.*/
public long getAvailableInodesLong()//查询已占用的inode区容量
{return mStat.f_favail;}//将查询结果返回成员变量
/***The number of inodes on the file system.This corresponds to theUnix{@code statvfs.f_files}field.*/
public long getTotalInodesLong()//查询inode区总容量
{return mStat.f_files;}//将查询结果返回成员变量
应当理解,对于索引节点可用容量查询接口与索引节点总容量查询接口的命名不限于上述的情况,可以设置任意的接口名称,并在接口中添加其他查询信息。此外,也可以将上述索引节点可用容量查询接口替换为索引节点已用容量查询接口,其实现的查询结果在实质上相同,本示例实施方式对此不做特别限定。
在一示例性实施例中,可以通过以下命令通过索引节点查询接口对索引节点进行查询:sudo dumpe2fs-h/dev/hda|grep"Inode size"和df-i。
在一示例性实施例中,步骤S120可以周期性地进行,例如每隔30秒获取一次索引节点占用率,以对存储空间进行周期性地监控。
步骤S130中,如果索引节点占用率超出预设阈值,则对存储空间进行清理处理。
索引节点占用率过高会影响存储空间的正常使用,可以设置预设阈值,作为占用率是否过高的衡量标准,例如可以根据***的实际情况将预设阈值设置为80%或90%等。如果索引节点占用率超出预设阈值,则可以采取一定的措施,通常***可以对存储空间进行清理处理,也可以生成关于存储空间的清理提示信息,以提示用户对存储空间进行清理,如果用户确认清理,则***对存储空间进行清理处理,使得索引节点占用率维持在安全的区间内,以保证存储空间的正常存取。
在一示例性实施例中,可以参考图3所示,在手机上执行上述步骤S110~S130,可以对手机的存储空间进行扫描,将扫描结果呈现在手机的图形用户界面中,如果发现索引节点占用率过高,导致内存不足,可以生成图3所示的清理提示信息,并在界面中显示出来,以引导用户进行清理。
基于上述说明,在本示例性实施例中,启动针对于存储空间的监控进程,并通过监控进程获取索引节点占用率,如果索引节点占用率超出预设阈值,则进行相应的处理。一方面,提出了一种新的存储空间监控方法,可以有效地监控存储空间中索引节点区的使用情况,已保证索引节点区始终具有足够的可用空间,不影响存储空间的正常使用。另一方面,通过监控索引节点占用率,可以发现存储空间非正常使用的情况,例如数据区剩余大量空间而索引节点已满等情况,从而实现对于存储空间异常情况的全面监控,进一步保证其正常使用。
进一步的,本公开的一种实施例中,在***中定义索引节点查询接口,使监控进程可以通过调取该接口获得查询数据,从而提高了存储空间监控的效率。
在一示例性实施例中,存储空间监控方法还可以包括以下步骤:
通过监控进程获取存储空间的数据区占用率,数据区占用率为数据区中已占用的容量与数据区总容量的比例;
如果索引节点占用率超出数据区占用率的程度满足预设条件,则生成关于存储空间的异常提示信息。
如前所述,存储空间通常包括索引节点区与数据区,数据区用于存储文件实体,因此监控进程可以同时对数据区的使用情况进行监控,获取数据区占用率。
一般情况下,索引节点占用率与数据区占用率之间具有一定的平衡关系,以Linux的ext4文件***为例,其存储空间包括inode区与block区,两者的比例为1:4,即4个block分配一个inode,一个block的大小为4KB。通常文件的大小都在4KB或者16KB(即4个block的大小)以上,则一个文件占用四个以上的block,而只占用一个inode。因此实际使用中,inode的消耗速度通常低于block的消耗速度,即inode占用率低于block占用率。如果出现异常情况,使得存储空间内存入大量小于16KB甚至小于4KB的小文件,则可能导致inode占用率快速升高,破坏inode与block之间的平衡;如果不及时处理,则后续inode将会早于block而耗尽,使得存储空间无法正常使用;极端情况下,block上存入的全部为小于4KB的文件,则inode写满时,block仅使用了25%的空间,但此时已无法再存入文件。
可见,如果索引节点占用率超出数据区占用率较多,说明可能存在大量小文件占用索引节点的情况,降低存储空间的实际可用率,需要对这种情况进行监控预防。因此可以通过上述预设条件判断索引节点占用率与数据区占用率之间是否失衡,如果判断失衡,则生成关于存储空间的异常提示信息,该异常提示信息可用于提示用户对数据区进行清理,也可以提示用户对异常原因进行检测,例如查找是否有恶意应用写入大量小文件,是否有近期内占用大量索引节点的文件夹等。
在一示例性实施例中,可以在一定的条件下启动对索引节点占用率与数据区占用率差值的监控,例如当索引节点占用率达到预设的警示值或数据区占用率达到预设的警示值时,分别获取索引节点占用率与数据区占用率,并确定索引节点占用率超出数据区占用率的程度是否满足预设条件,以判断是否存在存储异常情况。
在一示例性实施例中,预设条件可以是关于索引节点占用率与数据区占用率之差的阈值,例如设置为40%,则当数据区占用率为30%时,索引节点占用率在正常情况下不得超过70%。
在一示例性实施例中,上述如果索引节点占用率超出数据区占用率的程度满足预设条件,则生成关于存储空间的异常提示信息的步骤可以通过以下步骤实现:
计算索引节点占用率减去数据区占用率的差值,并计算该差值与数据区占用率的百分比;
如果该百分比超出第一阈值,则生成关于存储空间的异常提示信息。
换而言之,上述预设条件可以是关于索引节点占用率与数据区占用率的差值百分比的阈值,即上述第一阈值。百分比=(索引节点占用率-数据区占用率)/数据区占用率。例如,第一阈值可以设置为100%,则索引节点占用率不得超出数据区占用率的两倍;第一阈值可以设置为50%,则索引节点占用率不得超出数据区占用率的1.5倍。如果上述百分比超出第一阈值,可以判断发生异常,生成关于存储空间的异常提示信息。
通过上述方法,设置索引节点占用率与数据区占用率之间的预设条件,可以在索引节点发生异常使用的初期即发现异常,从而实现对存储空间异常的预警,更好的保证存储空间的正常使用。
基于***后台生成的异常提示信息,可以以各种形式通知到用户,例如以短信的形式发送到用户所绑定的手机号,以邮件的形式发送到用户指定的邮箱等。在一示例性实施例中,在生成关于存储空间的异常提示信息后,存储空间监控方法还可以包括以下步骤:
在电子终端的图形用户界面中显示异常提示信息。
其中,显示异常提示信息时,可以具体采用程序内弹窗、页面跳转等形式,使用户可以察觉到异常提示信息。异常提示信息中可以包括具体的异常内容、异常原因、建议的解决办法等,也可以包括一键解决的选项,当用户点击时,自动启动解决异常的措施,例如开启关于存储空间的清理进程,或者对存储空间内的文件进行扫描等。
需要说明的是,关于存储空间的异常提示信息与清理提示信息通常为不同的信息。清理提示信息是在索引节点占用率过高(超出预设阈值)的情况下,***生成的提示用户对存储空间进行清理的信息,通常认为索引节点区属于正常的占用过高的情况,进行清理即可;而异常提示信息是在索引节点占用率超出数据区占用率过多(满足预设条件)的情况下,***认为索引节点与数据区之间存在占用失衡的情况,属于存储空间异常占用,因此生成异常提示信息,此时仅仅清理存储空间可能无法从根源上解决存储空间异常占用的问题,异常提示信息用于提示用户清理存储空间并且从根源上查找原因以及解决问题。
当然,在一些情况下,例如***在索引节点占用率超出数据区占用率过多时,扫描存储空间未发现异常,也可以在生成仅包含清理提示相关内容的异常提示信息,也就是说,异常提示信息与清理提示信息在一些情况下可以是相同的信息。
此外,如果在步骤S130中生成清理提示信息,也可以通过上述短信、邮件或图形用户界面中显示的方式通知到用户。
在一示例性实施例中,步骤S130中的预设阈值可以是第三阈值,存储空间监控方法还可以包括以下步骤:
如果索引节点占用率超出第二阈值且未超出第三阈值,则生成关于存储空间的清理提示信息;其中,第二阈值小于第三阈值。
即可以为索引节点占用率设置两个或多个等级的阈值,并针对于每个等级的预设阈值采取不同的处理措施。在本示例性实施例中,第二阈值较小,其严重等级较低,第三阈值较大,其严重等级较高,因此在索引节点占用率仅超出第二阈值而未超出第三阈值时采取较轻的处理措施,只生成清理提示信息,即只通知用户进行清理,由用户决定是否清理;在索引节点占用率超出第三阈值时采取较重的处理措施,为了保证存储空间的正常使用,可以立即自动实施紧急的清理处理,当然也可以在进行清理处理前向用户发送相关的通知。由上可知,第二阈值应当小于第三阈值,例如可以设置第二阈值为70%,第三阈值为90%,对索引节点实现层级化的监控管理。在一示例性实施例中,也可以增设选项功能,使用户可以自定义设定第二阈值与第三阈值。
需要说明的是,上述第一阈值、第二阈值与第三阈值中的“第一”、“第二”与“第三”仅仅对各阈值起标记作用,并非对各阈值的数量或次序进行限定。例如在对索引节点占用率进行分层级监控管理时,除了上述第二阈值与第三阈值,还可以增设第四阈值、第五阈值等,使得索引节点占用率处于不同的阈值区间内,采取不同的处理措施;又例如在对索引节点占用率减去数据区占用率的差值与数据区占用率的百分比进行监控时,除了上述第一阈值,还可以增设更多的阈值,以对应的采取不同的处理措施。
在一示例性实施例中,步骤S130中对存储空间进行清理处理可以通过以下步骤实现:
清理存储空间中小于数据块大小的文件。
在对存储空间进行清理处理时,为了有效地降低索引节点占用率,可以删除其中的小文件,即文件大小小于数据块大小的文件。在上述ext4文件***汇总,数据块的大小为4KB。如前所述,如果存储空间内存在大量小于数据块大小的文件,则会导致索引节点占用率的异常升高。通常这类小文件来自于恶意应用,或者属于临时性文件等,将这类小文件进行清理,可以有效地降低索引节点占用率,使存储空间恢复正常。
在实际应用中,可以对上述小文件进行选择性清理,例如根据索引节点占用率超出预设阈值的程度,确定需要清理的文件大小,从扫描出的小文件中清理相应的量,使得索引节点占用率恢复到预设阈值以下的水平;也可以对各文件夹进行扫描,确定小文件集中所在的一个或多个文件夹,将其作为异常文件夹,清理其中的小文件等等。
图4示出了本示例性实施例中一种存储空间监控方法的流程图。参考图4所示,电子终端上启动监控进程,调取索引节点查询接口,获取索引节点占用率及其他相关数据;首先可以判断索引节点占用率是否超出第三阈值,如果超出第三阈值,则执行清理小文件的步骤,使索引节点占用率恢复到正常的水平,如果未超出第三阈值,则可以继续判断是否超出第二阈值;如果超出第二阈值,则生成清理提示信息,如果未超出第二阈值,则可以继续判断索引节点占用率与数据区占用率的差值百分比是否超出第一阈值;如果超出第一阈值,则生成异常提示信息,如果未超出第一阈值,则可以在一段时间后再次重复上述调取接口数据以及判断的流程。在清理提示信息与异常提示信息中都可以包含是否清理存储空间的用户选项,如果用户确定不清理,则可以在一段时间后再次重复上述流程,如果用户确定清理,则执行清理小文件的步骤。在清理小文件的步骤中,电子终端可以通过清理进程对存储空间内的小文件进行选择性清理,也可以对存储空间进行扫描,将可删除的文件以列表的形式呈现出来,使用户选择性删除,在完成清理后可以周期性重复上述流程。
此外,图4示出了对索引节点进行三个层级管理的机制,本示例实施方式对于三个层级的判断条件不做顺序上的限定,根据实际需要,也可以首先判断差值百分比是否超出第一阈值或者索引节点占用率是否超出第二阈值等等。可见,图4所示的方法流程可以对索引节点区实现全面的监控管理,从而更加高效地保证存储空间的正常使用。
本公开的示例性实施例还提供了一种存储空间监控装置,可以应用于电子终端。参考图5所示,该装置500可以包括:监控启动模块510,用于启动针对于存储空间的监控进程,其中,存储空间包括数据区与索引节点区,数据区用于存储文件,索引节点区用于存储文件的索引信息;占用率获取模块520,用于通过监控进程获取索引节点占用率,索引节点占用率为索引节点区中已占用的索引节点与全部索引节点的比例;异常处理模块530,用于如果索引节点占用率超出预设阈值,则对存储空间进行清理处理。
在一示例性实施例中,占用率获取模块520还可以用于通过监控进程获取存储空间的数据区占用率,数据区占用率为数据区中已占用的容量与所述数据区总容量的比例;异常处理模块530还可以用于如果索引节点占用率超出数据区占用率的程度满足预设条件,则生成关于存储空间的异常提示信息。
在一示例性实施例中,异常处理模块530可以包括:差值百分比计算单元,用于计算索引节点占用率减去数据区占用率的差值,并计算该差值与数据区占用率的百分比;异常提示信息生成单元,用于如果上述百分比超出第一阈值,则生成关于存储空间的异常提示信息。
在一示例性实施例中,异常处理模块530可以包括:第一处理单元,用于如果索引节点占用率超出第三阈值,则对所述存储空间进行清理处理;第二处理单元,用于如果索引节点占用率超出第二阈值且未超出第三阈值,则生成关于存储空间的清理提示信息;其中,第二阈值小于第三阈值。
在一示例性实施例中,异常处理模块530可以用于清理存储空间中小于数据块大小的文件。
在一示例性实施例中,占用率获取模块520可以用于调度监控进程周期性地调取索引节点查询接口,并通过索引节点查询接口获取索引节点占用率。
在一示例性实施例中,索引节点查询接口可以包括索引节点可用容量查询接口与索引节点总容量查询接口。
上述装置中的各模块/单元的具体细节已经在对应的方法部分实施例中进行了详细的说明,因此不再赘述。
本公开的示例性实施例还提供了一种能够实现上述方法的电子终端。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为***、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“***”。
下面参照图6来描述根据本公开的这种示例性实施例的电子终端600。图6显示的电子终端600仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图6所示,电子终端600可以包括处理器610与存储器620,存储器620用于存储处理器610的可执行指令,处理器610配置为经由执行该可执行指令来执行本公开各种示例性实施例的方法。可执行指令通常为程序代码,程序代码可被处理器610执行,例如处理器610通过执行程序代码而执行图1或图4所示的方法步骤。
在一示例性实施例中,如图7所示,电子终端700可以以通用计算设备的形式表现。其中,处理器表现为至少一个处理单元710,存储器表现为至少一个存储单元720,此外,电子终端700的组件还可以包括但不限于:连接不同***组件(包括存储单元720和处理单元710)的总线730、显示单元740等。
其中,存储单元720可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)721和/或高速缓存存储单元722,还可以进一步包括只读存储单元(ROM)723。
存储单元720还可以包括具有一组(至少一个)程序模块725的程序/实用工具724,这样的程序模块725包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线730可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、***总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子终端700也可以与一个或多个外部设备900(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子终端700交互的设备通信,和/或与使得该电子终端700能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口750进行。并且,电子终端700还可以通过网络适配器760与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器760通过总线730与电子终端700的其它模块通信。应当明白,尽管图中未示出,可以结合电子终端700使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开示例性实施例的方法。
本公开的示例性实施例还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
参考图8所示,描述了根据本公开的示例性实施例的用于实现上述方法的程序产品800,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的示例性实施例,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限。

Claims (8)

1.一种存储空间监控方法,应用于电子终端,其特征在于,包括:
启动针对于存储空间的监控进程,其中,所述存储空间包括数据区与索引节点区,所述数据区用于存储文件,所述索引节点区用于存储文件的索引信息;
通过所述监控进程获取索引节点占用率,所述索引节点占用率为所述索引节点区中已占用的索引节点与全部索引节点的比例;
如果所述索引节点占用率超出第三阈值,则对所述存储空间进行清理处理;
如果所述索引节点占用率超出第二阈值且未超出第三阈值,则生成关于所述存储空间的清理提示信息;所述第二阈值小于所述第三阈值;
如果所述索引节点占用率达到对应的预设警示值,则通过所述监控进程获取数据区占用率,判断所述索引节点占用率超出所述数据区占用率的程度是否满足预设条件,所述数据区占用率为所述数据区中已占用的容量与所述数据区总容量的比例;
如果所述索引节点占用率超出所述数据区占用率的程度满足预设条件,则生成关于所述存储空间的异常提示信息。
2.根据权利要求1所述的方法,其特征在于,所述如果所述索引节点占用率超出所述数据区占用率的程度满足预设条件,则生成关于所述存储空间的异常提示信息包括:
计算所述索引节点占用率减去所述数据区占用率的差值,并计算所述差值与所述数据区占用率的百分比;
如果所述百分比超出第一阈值,则生成关于所述存储空间的异常提示信息。
3.根据权利要求1所述的方法,其特征在于,所述对所述存储空间进行清理处理包括:
清理所述存储空间中小于数据块大小的文件。
4.根据权利要求1所述的方法,其特征在于,所述通过所述监控进程获取索引节点占用率包括:
所述监控进程周期性地调取索引节点查询接口,并通过所述索引节点查询接口获取所述索引节点占用率。
5.根据权利要求4所述的方法,其特征在于,所述索引节点查询接口包括索引节点可用容量查询接口与索引节点总容量查询接口。
6.一种存储空间监控装置,应用于电子终端,其特征在于,包括:
监控启动模块,用于启动针对于存储空间的监控进程,其中,所述存储空间包括数据区与索引节点区,所述数据区用于存储文件,所述索引节点区用于存储文件的索引信息;
占用率获取模块,用于通过所述监控进程获取索引节点占用率,所述索引节点占用率为所述索引节点区中已占用的索引节点与全部索引节点的比例,以及如果所述索引节点占用率达到对应的预设警示值,则通过所述监控进程获取数据区占用率,所述数据区占用率为所述数据区中已占用的容量与所述数据区总容量的比例;
异常处理模块,包括:第一处理单元,用于如果所述索引节点占用率超出第三阈值,则对所述存储空间进行清理处理;第二处理单元,用于如果所述索引节点占用率超出第二阈值且未超出第三阈值,则生成关于所述存储空间的清理提示信息;所述第二阈值小于所述第三阈值;
所述异常处理模块,还用于如果所述索引节点占用率达到对应的预设警示值,则获取所述数据区占用率,判断所述索引节点占用率超出所述数据区占用率的程度是否满足预设条件;如果所述索引节点占用率超出所述数据区占用率的程度满足预设条件,则生成关于所述存储空间的异常提示信息。
7.一种电子终端,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-5任一项所述的方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-5任一项所述的方法。
CN201811550567.0A 2018-12-18 2018-12-18 存储空间监控方法及装置、电子终端、存储介质 Active CN109656885B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811550567.0A CN109656885B (zh) 2018-12-18 2018-12-18 存储空间监控方法及装置、电子终端、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811550567.0A CN109656885B (zh) 2018-12-18 2018-12-18 存储空间监控方法及装置、电子终端、存储介质

Publications (2)

Publication Number Publication Date
CN109656885A CN109656885A (zh) 2019-04-19
CN109656885B true CN109656885B (zh) 2022-04-29

Family

ID=66114804

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811550567.0A Active CN109656885B (zh) 2018-12-18 2018-12-18 存储空间监控方法及装置、电子终端、存储介质

Country Status (1)

Country Link
CN (1) CN109656885B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110275870A (zh) * 2019-05-22 2019-09-24 深圳壹账通智能科技有限公司 缓存文件的管理方法、装置、计算机设备及存储介质
CN110750411B (zh) * 2019-08-26 2023-05-05 上海商米科技集团股份有限公司 文件索引节点监控预警及修复的方法和装置
CN111444116B (zh) * 2020-03-23 2022-11-25 海信电子科技(深圳)有限公司 存储空间碎片处理方法及装置
CN112711567B (zh) * 2021-01-06 2023-04-25 湖南同有飞骥科技有限公司 Session文件使用空间的清理方法和***
CN114328526A (zh) * 2021-12-27 2022-04-12 中国电信股份有限公司 数据处理方法、装置、电子设备及计算机可读存储介质
CN116049113B (zh) * 2022-08-29 2023-10-20 荣耀终端有限公司 文件***的整理方法、电子设备及计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106294206A (zh) * 2015-05-21 2017-01-04 广州华多网络科技有限公司 一种缓存数据处理方法以及装置
CN108287869A (zh) * 2017-12-20 2018-07-17 江苏省公用信息有限公司 一种基于快速存储设备的海量小文件解决方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8972345B1 (en) * 2006-09-27 2015-03-03 Hewlett-Packard Development Company, L.P. Modifying data structures in distributed file systems
CN102982182B (zh) * 2012-12-21 2017-02-08 浙江宇视科技有限公司 一种数据存储规划方法及装置
US11093532B2 (en) * 2017-05-25 2021-08-17 International Business Machines Corporation Pre-allocating filesystem metadata within an object storage system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106294206A (zh) * 2015-05-21 2017-01-04 广州华多网络科技有限公司 一种缓存数据处理方法以及装置
CN108287869A (zh) * 2017-12-20 2018-07-17 江苏省公用信息有限公司 一种基于快速存储设备的海量小文件解决方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
linux inode入门简介;asyoulikewhatever;《CSDN》;20150213;第1-4页 *

Also Published As

Publication number Publication date
CN109656885A (zh) 2019-04-19

Similar Documents

Publication Publication Date Title
CN109656885B (zh) 存储空间监控方法及装置、电子终端、存储介质
US9274714B2 (en) Method and system for managing storage capacity in a storage network
US11132356B2 (en) Optimizing data entries in a log
US7836344B2 (en) Method for automatic dump assurance
JP2011175357A5 (ja) 管理装置及び管理プログラム
CN109726076B (zh) 一种小程序生命周期管理方法和***
CN103369003A (zh) 一种利用云计算扫描移动设备的冗余文件的方法和***
WO2015009405A1 (en) Systems and methods for filtering low utility value messages from system logs
CN108334415A (zh) 一种容错处理方法、装置、终端及存储介质
CN105893471B (zh) 一种数据处理方法及电子设备
CN105574163A (zh) 一种文件处理方法、装置及电子设备
CN110427258A (zh) 基于云平台的资源调度控制方法及装置
CN115407943A (zh) 一种内存转储文件生成方法、装置、设备及可读存储介质
CN110502581B (zh) 分布式数据库***监测方法及装置
CN116450287A (zh) 业务容器存储容量的管理方法、装置、设备及可读介质
CN104216819A (zh) 一种终端应用管理方法
US9870400B2 (en) Managed runtime cache analysis
CN110502345A (zh) 一种过载保护方法、装置、计算机设备及存储介质
CN114503109B (zh) 用于维护数据处理***安全性的方法和***
CN112486966A (zh) 一种过期数据清理方法、装置和电子设备
CN110347546B (zh) 监控任务动态调整方法、装置、介质及电子设备
CN115718732A (zh) 一种磁盘文件管理方法、装置、设备及存储介质
CN112905541B (zh) 镜像仓库垃圾清理方法和装置
CN111488117A (zh) 用于管理元数据的方法、电子设备和计算机可读介质
CN114827157A (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