威尼斯人棋牌-威尼斯欢乐娱人城-首页

一种内存空间垃圾回收处理方法、装置、设备及介质与流程

文档序号:24942038发布日期:2021-05-04 11:35
一种内存空间垃圾回收处理方法、装置、设备及介质与流程

本发明涉及存储技术领域,特别是涉及一种内存空间垃圾回收处理方法、装置、设备及可读存储介质。



背景技术:

由于内存空间有限,为避免剩余空间过少,影响后续业务的正常运行,会采用写仲裁方案调节用户写入量和gc(垃圾回收,指回收block(lun的组成单位,擦除(erase)的最小单元)中无效数据所占据的空间)的比例,用户写入过多的情况下会限制用户写。

一些情况下,用户可能写入性能不高,写速度较低,用户写的速度跟不上垃圾回收的速度,在这种写仲裁方案的处理方式下就会造成了剩余空间大小的波动,剩余空间会在阈值上下波动,而垃圾回收在剩余空间低于阈值就开启,就会造成垃圾回收的频繁的关闭和开启,这种垃圾回收的频繁关闭和开启会造成用户写延迟(latency)的波动,影响用户数据写入的效率以及稳定性;同时,目前的垃圾回收机制占用的主机资源较多,会占用大量的主机性能,对于用户写入的速度会产生一定的影响,导致用户写入速度降低,影响用户体验。

综上所述,如何避免垃圾回收的频繁开启以及关闭,同时减少垃圾回收的资源占用,从而提升用户写入速度,是目前本领域技术人员急需解决的技术问题。



技术实现要素:

本发明的目的是提供一种内存空间垃圾回收处理方法、装置、设备及可读存储介质,可以避免垃圾回收的频繁开启以及关闭,同时减少垃圾回收的资源占用,从而提升用户写入速度。

为解决上述技术问题,本发明提供如下技术方案:

一种内存空间垃圾回收处理方法,包括:

若垃圾回收开启,按照第一速度对内存空间进行垃圾回收;其中,所述第一速度为小于最大回收速度的初始回收速度;

监测所述内存空间中可用空间的大小;

若所述可用空间小于阈值,按照对应的第二速度对所述内存空间进行垃圾回收;其中,所述第二速度大于所述第一速度。

可选地,若所述可用空间小于阈值,按照对应的第二速度对所述内存空间进行垃圾回收,包括:

在预设若干所述阈值中,确定所述可用空间超过的最小的阈值,作为目标阈值;

确定所述目标阈值对应设置的速度,作为所述第二速度;

按照所述第二速度对所述内存空间进行垃圾回收;

其中,所述阈值与对应设置的速度间呈反比关系。

可选地,所述阈值根据最小可用空间数与垃圾回收开启时的可用空间数间的差值,以及预设阶梯数量进行阶梯性设置生成。

可选地,若所述可用空间小于阈值,包括:若所述可用空间小于所述最小可用空间数,则相应地,若所述可用空间小于所述最小可用空间数,还包括:禁止用户写入数据。

一种内存空间垃圾回收处理装置,包括:

第一处理单元,用于若垃圾回收开启,按照第一速度对内存空间进行垃圾回收;其中,所述第一速度为小于最大回收速度的初始回收速度;

空间监测单元,用于监测所述内存空间中可用空间的大小;若所述可用空间小于阈值,触发第二处理单元;

所述第二处理单元,用于按照对应的第二速度对所述内存空间进行垃圾回收;其中,所述第二速度大于所述第一速度。

可选地,所述第二处理单元包括:

确定子单元,用于在预设若干所述阈值中,确定所述可用空间超过的最小的阈值,作为目标阈值;

速度确定子单元,用于确定所述目标阈值对应设置的速度,作为所述第二速度;

控制子单元,用于按照所述第二速度对所述内存空间进行垃圾回收;

其中,所述阈值与对应设置的速度间呈反比关系。

可选地,所述确定子单元中的阈值可以由阈值确定子单元生成;

所述阈值确定子单元,用于根据最小可用空间数与垃圾回收开启时的可用空间数间的差值,以及预设阶梯数量进行阶梯性设置生成所述阶梯性阈值。

可选地,所述空间监测单元,具体用于监测所述内存空间中可用空间的大小;若所述可用空间小于所述最小可用空间数,触发第二处理单元;则相应地,所述第二处理单元还用于:禁止用户写入数据。

一种计算机设备,包括:

存储器,用于存储计算机程序;

处理器,用于实行所述计算机程序时实现上述内存空间垃圾回收处理方法的步骤。

一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器实行时实现上述内存空间垃圾回收处理方法的步骤。

本发明实施例所提供的方法中,以较小的速度启动垃圾回收,既可以保证在任何情况下垃圾回收的速度尽量不高于用户写入速度,则剩余空间的大小不会再垃圾回收开启阈值上下波动,避免了垃圾回收的频繁开启以及关闭对于用户存储空间的存储波动以及系统控制稳定性的影响;又可以保证低速垃圾回收处理过程占用较少的系统处理资源,避免对于其他业务的影响,保证用户写的性能的高速持续稳定;同时,该方法实时监测内存空间中可用空间数,若可用空间数较少,提升垃圾回收速度,从而保障可用空间的迅速增加,从而保障数据的正常写入。

相应地,本发明实施例还提供了与上述内存空间垃圾回收处理方法相对应的内存空间垃圾回收处理装置、设备和可读存储介质,具有上述技术效果,在此不再赘述。

附图说明

为了更清楚地说明本发明实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地先容,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例中一种内存空间垃圾回收处理方法的实施流程图;

图2为本发明实施例中一种内存空间垃圾回收处理装置的结构示意图;

图3为本发明实施例中一种计算机设备的结构示意图。

具体实施方式

本发明的核心是提供一种内存空间垃圾回收处理方法,可以避免垃圾回收的频繁开启以及关闭,同时减少垃圾回收的资源占用,从而提升用户写入速度。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

传统方法下,只限制用户写入量的用户写和垃圾回收写的仲裁,会有覆盖不到的场景,就是用户写速度较低的情况。这种情况下,垃圾回收较快,回收到阈值之上,垃圾回收停止,但是用户写还在进行,接着又会垃圾回收,这种垃圾回收的频繁关闭和开启造成了用户写延迟(latency)的波动。

为避免上述情况,本实施例提出了一种自适应垃圾回收,从而避免在用户写速度较低时出现较多波动。需要说明的是,本实施例可以应用于任何进行垃圾回收的存储系统设备,比如固态硬盘,本实施例中对于应用的主体设备不做限定,可以根据实际使用需要进行设定。

请参考图1,图1为本发明实施例中一种内存空间垃圾回收处理方法的流程图,该方法包括以下步骤:

s101、若垃圾回收开启,按照第一速度对内存空间进行垃圾回收;

其中,第一速度为小于最大回收速度的初始回收速度;

本实施例中垃圾回收指存储系统中用于回收block中无效数据所占据的空间的垃圾回收处理机制(gc),其他叫法在此不再赘述,均适用本实施例的保护范围。

本实施例中对于垃圾回收的触发机制不做限定,可以根据实际使用需要设置相应的垃圾回收触发阈值(比如根据ssd中包含的block的个数和用户空间的大小设定垃圾回收开启的阈值),也可以设置除了阈值外其他的触发方法,在此不再赘述。

若应用主体的垃圾回收开启,即启动block中无效数据所占据的空间的回收,则传统方法下会按照最大的垃圾回收处理速度进行垃圾回收处理,则此时若用户写速度低于回收速度,则会造成垃圾回收的频繁开启关闭,避免了对于用户存储空间的存储波动;而且以最大的垃圾回收处理速度进行垃圾回收处理时会占用较多的系统处理资源,对于用户写的性能占用较多,从而会进一步减慢用户写速度,会降低用户响应速度的同时还会进一步加剧存储波动。

而本实施例中,不再进行全放开的垃圾回收,而是对回收速度进行调节,在垃圾回收开启时,以较低的第一速度启动垃圾回收,其中,第一速度为小于最大回收速度的初始回收速度,本实施例中对于第一速度的具体数值设置不做限定,一般可以设置较小的启动速度,比如可以只允许1s(1秒)回收一个page。

以较小的速度启动垃圾回收,既可以保证在任何情况下(用户写入速度高或低时)垃圾回收的速度尽量不高于用户写入速度,则剩余空间的大小不会再垃圾回收开启阈值上下波动,避免了垃圾回收的频繁开启以及关闭对于用户存储空间的存储波动以及系统控制稳定性的影响;又可以保证低速垃圾回收处理过程占用较少的系统处理资源,避免对于其他业务(包括用户写)的影响,保证用户写的性能的高速持续稳定。

s102、监测内存空间中可用空间的大小;

以较小的速度启动垃圾回收时若用户写入速度过大可能会造成剩余的可用空间过少,造成用户无法正常写入的情况,为避免该情况,本实施例中对内存空间中可用空间的大小进行实时采样监控,监测内存空间中可用空间的大小是否小于阈值,其中,阈值为(系统默认或用户自定义)设定的用户写入的最小可用空间值。

若可用空间不小于阈值,即大于或等于阈值,本实施例中对于该种情况下的处理方式不做限定,可以继续按照第一速度进行垃圾回收,也可以设置定时器,按照第一速度回收达到某一时间长度后增加垃圾回收的速度等,可以根据实际使用情况进行设定,在此不再赘述;若可用空间小于阈值,则触发步骤s103。

需要说明的是,对于内存空间中可用空间大小的监测可以按照相关技术中的实现方式,本实施例中对此不做限定。

s103、按照第二速度对内存空间进行垃圾回收;

若可用空间小于阈值,则说明可用空间过小,可能会影响正常的用户写入进程,为保障用户正常写入,需要增加可用的空间数量,本实施例中按照大于第一速度的第二速度对内存空间进行垃圾回收。而本实施例中对于第二速度的具体速度数值设置也不做限定,需大于第一速度,不超过垃圾回收的最大速度,比如第二速度可以取垃圾回收的最大速度,即可用空间数降低到最低时,此时垃圾回收全部放开,以最大的速度进行垃圾回收,保障可用空间的迅速增加,从而保障数据的正常写入。

应用本发明实施例所提供的技术方案,以较小的速度启动垃圾回收,既可以保证在任何情况下垃圾回收的速度尽量不高于用户写入速度,则剩余空间的大小不会再垃圾回收开启阈值上下波动,避免了垃圾回收的频繁开启以及关闭对于用户存储空间的存储波动以及系统控制稳定性的影响;又可以保证低速垃圾回收处理过程占用较少的系统处理资源,避免对于其他业务的影响,保证用户写的性能的高速持续稳定;同时,该方法实时监测内存空间中可用空间数,若可用空间数较少,提升垃圾回收速度,从而保障可用空间的迅速增加,从而保障数据的正常写入。

需要说明的是,基于上述实施例,本发明实施例还提供了相应的改进方案。在优选/改进实施例中涉及与上述实施例中相同步骤或相应步骤之间可相互参考,相应的有益效果也可相互参照,在本文的优选/改进实施例中不再一一赘述。

上述实施例中对于阈值的设定以及第二速度的设定不做限定,为加深理解,本实施例中先容一种阈值以及第二速度的设定方式,以及设定后的垃圾回收处理机制,其他阈值以及第二速度的设定方式对应的处理方式均可参照本实施例的先容,在此不再赘述。

阈值可以为单一阈值,也可以设置多个阈值实现可用空间的多级判断,一种阈值的设置方式为设置若干递减的阶梯性的阈值,则根据阶梯性设置的阈值对应设置阶梯性的第二速度,生成若干递增的阶梯性的速度,其中,阈值与对应设置的速度间呈反比关系,则若可用空间小于阈值,按照对应的第二速度对内存空间进行垃圾回收的过程可以包括以下步骤:

(1)在预设若干阈值中,确定可用空间超过的最小的阈值(低于的最大的阈值),作为目标阈值;

(2)确定目标阈值对应设置的速度,作为第二速度;

(3)按照第二速度对内存空间进行垃圾回收。

比如阈值包括20个block、15个block、10个block以及5个block四个阶梯性阈值,同时第二速度包括20个block对应的2page/s,15个block对应的3page/s,10个block对应的4page/s,以及5个block对应的6page/s,若内存空间中可用空间为14个block,低于的阈值包括:15个block、10个block以及5个block三个阶梯性阈值,低于的最大的阈值为15个block,将其作为目标阈值,确定阈值为15个block对应的回收速度3page/s,作为第二速度,则按照3page/s的速度对内存空间进行垃圾回收;若内存空间中可用空间小于10个,则按照4page/s的速度对内存空间进行垃圾回收,以此类推。

该种多级垃圾回收处理机制既可以保证可用空间的数量,又可以避免垃圾回收处理对于资源的过多占用。

上述多级垃圾回收处理机制中对于阶梯性的若干阈值的具体数值设定不做限定,可以根据最小可用空间数与垃圾回收开启时的可用空间数间的差值,以及预设阶梯数量进行阶梯性设置生成。比如预设阶梯数量为5,最小可用空间数为4个block,垃圾回收开启时的可用空间数为20个block,则可以按照4作为平均差值,生成20、16、12、8、4的五层阶梯性的阈值。该种阈值设置方式可以快速自动生成,提升便捷性。

需要说明的是,阶梯性阈值的最小值不低于最小可用空间数,阶梯性速度的最大值不超过最大回收速度。

若阶梯性的若干阈值中国的最小值为最小可用空间数,即若可用空间小于阈值,包括:若可用空间小于最小可用空间数,则相应地,在可用空间小于最小可用空间数时,除了调整垃圾回收的速度按照第二速度对内存空间进行垃圾回收之外,还可以进一步实行禁止用户写入数据,以实现可用空间的快速回收。

相应于上面的方法实施例,本发明实施例还提供了一种内存空间垃圾回收处理装置,下文描述的内存空间垃圾回收处理装置与上文描述的内存空间垃圾回收处理方法可相互对应参照。

参见图2所示,该装置包括以下模块:

第一处理单元110主要用于若垃圾回收开启,按照第一速度对内存空间进行垃圾回收;其中,第一速度为小于最大回收速度的初始回收速度;

空间监测单元120主要用于监测内存空间中可用空间的大小;若可用空间小于阈值,触发第二处理单元;

第二处理单元130主要用于按照对应的第二速度对内存空间进行垃圾回收;其中,第二速度大于第一速度。

在本发明的一种具体实施方式中,第二处理单元130具体包括:

确定子单元,用于在预设若干阈值中,确定可用空间超过的最小的阈值,作为目标阈值;

速度确定子单元,用于确定目标阈值对应设置的速度,作为第二速度;

控制子单元,用于按照第二速度对内存空间进行垃圾回收;

其中,阈值与对应设置的速度间呈反比关系。

在本发明的一种具体实施方式中,确定子单元中的阈值可以由阈值确定子单元生成;

阈值确定子单元,用于根据最小可用空间数与垃圾回收开启时的可用空间数间的差值,以及预设阶梯数量进行阶梯性设置生成阶梯性阈值。

在本发明的一种具体实施方式中,空间监测单元,具体用于监测内存空间中可用空间的大小;若可用空间小于最小可用空间数,触发第二处理单元;则相应地,第二处理单元还用于:禁止用户写入数据。

相应于上面的方法实施例,本发明实施例还提供了一种计算机设备,下文描述的一种计算机设备与上文描述的一种内存空间垃圾回收处理方法可相互对应参照。

该计算机设备包括:

存储器,用于存储计算机程序;

处理器,用于实行计算机程序时实现上述方法实施例的内存空间垃圾回收处理方法的步骤。

具体的,请参考图3,为本实施例提供的一种计算机设备的具体结构示意图,该计算机设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,cpu)322(例如,一个或一个以上处理器)和存储器332,存储器332存储有一个或一个以上的计算机应用程序342或数据344。其中,存储器332可以是短暂存储或持久存储。存储在存储器332的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储器332通信,在计算机设备301上实行存储器332中的一系列指令操作。

计算机设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。

上文所描述的内存空间垃圾回收处理方法中的步骤可以由计算机设备的结构实现。

相应于上面的方法实施例,本发明实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种内存空间垃圾回收处理方法可相互对应参照。

一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器实行时实现上述方法实施例的内存空间垃圾回收处理方法的步骤。

该可读存储介质具体可以为u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可存储程序代码的可读存储介质。

本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机App或者二者的结合来实现,为了清楚地说明硬件和App的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是App方式来实行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1

威尼斯人棋牌|威尼斯欢乐娱人城

XML 地图 | Sitemap 地图