一种在线内存碎片整理方法和装置与流程

文档序号:12063594阅读:301来源:国知局
一种在线内存碎片整理方法和装置与流程

本发明属于linux系统内存管理技术领域,特别是涉及一种在线内存碎片整理方法和装置。



背景技术:

现有技术中的服务器,经常会几周甚至几个月不断电冲压机,这样的话就会产生很多的内存碎片,虽然现在的内存分配算法已经尽可能的避免产生内存碎片了,但是始终不能忽视这个问题,所以还需要一种可以有效整理内存碎片的方法,当前的内存碎片整理过程都需要停掉服务器一段时间,会带来麻烦。



技术实现要素:

为解决上述问题,本发明提供了一种在线内存碎片整理方法和装置,能够在不停机的情况下初始化所有的内存,增加系统的稳定性和可用性。

本发明提供的一种在线内存碎片整理方法,包括:

将一部分内存设置为预留内存;

对内存碎片的大小进行统计;

当内存碎片的大小超过预设阈值时,将当前内存中的业务迁移到所述预留内存中;

整理当前内存中的碎片,初始化当前内存。

优选的,在上述在线内存碎片整理方法中,在初始化当前内存之后,还包括:

将迁移到所述预留内存中的业务迁回到当前内存中。

优选的,在上述在线内存碎片整理方法中,所述将当前内存中的业务迁移到所述预留内存中包括:

当当前内存中的业务所占空间大于所述预留内存的空间时,将所述当前内存中的业务拆分成多个部分,并依次迁移到所述预留内存中。

优选的,在上述在线内存碎片整理方法中,所述当内存碎片的大小超过预设阈值时,将当前内存中的业务迁移到所述预留内存中为:

当小于128K的内存碎片的大小超过内存总量的50%至70%时,将当前内存中的业务迁移到所述预留内存中。

本发明提供的一种在线内存碎片整理装置,包括:

设置单元,用于将一部分内存设置为预留内存;

统计单元,用于对内存碎片的大小进行统计;

迁移单元,用于当内存碎片的大小超过预设阈值时,将当前内存中的业务迁移到所述预留内存中;

整理单元,用于整理当前内存中的碎片,初始化当前内存。

优选的,在上述在线内存碎片整理装置中,还包括:

迁回单元,用于将迁移到所述预留内存中的业务迁回到当前内存中。

优选的,在上述在线内存碎片整理装置中,所述迁移单元具体用于当当前内存中的业务所占空间大于所述预留内存的空间时,将所述当前内存中的业务拆分成多个部分,并依次迁移到所述预留内存中。

优选的,在上述在线内存碎片整理装置中,所述迁移单元具体用于当小于128K的内存碎片的大小超过内存总量的50%至70%时,将当前内存中的业务迁移到所述预留内存中。

通过上述描述可知,本发明提供的上述在线内存碎片整理方法和装置,由于该方法包括将一部分内存设置为预留内存;对内存碎片的大小进行统计;当内存碎片的大小超过预设阈值时,将当前内存中的业务迁移到所述预留内存中;整理当前内存中的碎片,初始化当前内存,因此能够在不停机的情况下初始化所有的内存,增加系统的稳定性和可用性。

附图说明

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

图1为本申请实施例提供的第一种在线内存碎片整理方法的示意图;

图2为本申请实施例提供的第一种在线内存碎片整理装置的示意图。

具体实施方式

本发明的核心思想在于提供一种在线内存碎片整理方法和装置,能够在不停机的情况下初始化所有的内存,增加系统的稳定性和可用性。

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本申请实施例提供的第一种在线内存碎片整理方法如图1所示,图1为本申请实施例提供的第一种在线内存碎片整理方法的示意图,该方法包括如下步骤:

S1:将一部分内存设置为预留内存;

需要说明的是,在这种情况下,将整个系统内存分成两部分,大部分用来作为系统的正常运行开销,然后预留出一部分作为内存碎片整理的中转站,这部分预留内存在系统正常运行时不参与业务内存分配。

S2:对内存碎片的大小进行统计;

需要说明的是,可以由内存碎片监控模块来确定是否有必要进行内存整理,如无必要则进行循环监控和统计。

S3:当内存碎片的大小超过预设阈值时,将当前内存中的业务迁移到所述预留内存中;

需要说明的是,可以调用业务内存计算模块计算出当前系统所运行的业务内存大小,当达到一定条件时,将这些业务迁移进预留内存中,在此期间对业务并不产生影响,因此用户没有受到任何影响。

S4:整理当前内存中的碎片,初始化当前内存。

具体的,可以由内存碎片整理模块进行内存碎片整理。

通过上述描述可知,本申请实施例提供的第一种在线内存碎片整理方法,由于包括将一部分内存设置为预留内存;对内存碎片的大小进行统计;当内存碎片的大小超过预设阈值时,将当前内存中的业务迁移到所述预留内存中;整理当前内存中的碎片,初始化当前内存,因此能够在不停机的情况下初始化所有的内存,增加系统的稳定性和可用性。

本申请实施例提供的第二种在线内存碎片整理方法,是在上述第一种在线内存碎片整理方法的基础上,还包括如下技术特征:

在初始化当前内存之后,还包括:

将迁移到所述预留内存中的业务迁回到当前内存中。

也就是说,将业务恢复到系统正常运行内存中,清理出预留内存即可,这样就不再存在内存碎片,提高内存的利用率。

本申请实施例提供的第三种在线内存碎片整理方法,是在上述第一种在线内存碎片整理方法的基础上,还包括如下技术特征:

所述将当前内存中的业务迁移到所述预留内存中包括:

当当前内存中的业务所占空间大于所述预留内存的空间时,将所述当前内存中的业务拆分成多个部分,并依次迁移到所述预留内存中。

举例来说,业务所用内存有5G而预留内存只有4G,则将业务拆成3G的块和2G的块,先将3G的业务内存迁移进预留内存中,然后将这3G所在的内存区域整理了,再将业务内存迁移回来,再把其余的业务内存迁移进预留内存中,接着整理完剩下内存碎片,最后将这块业务迁移回系统的当前内存中。

本申请实施例提供的第四种在线内存碎片整理方法,是在上述第一种至第三种在线内存碎片整理方法中任一种的基础上,还包括如下技术特征:

所述当内存碎片的大小超过预设阈值时,将当前内存中的业务迁移到所述预留内存中为:

当小于128K的内存碎片的大小超过内存总量的50%至70%时,将当前内存中的业务迁移到所述预留内存中。

当然这只是其中的一种判断方式,还可以采用其他判断标准,此处并不限制。

本申请实施例提供的第一种在线内存碎片整理装置如图2所示,图2为本申请实施例提供的第一种在线内存碎片整理装置的示意图,该装置包括:

设置单元201,用于将一部分内存设置为预留内存,需要说明的是,在这种情况下,将整个系统内存分成两部分,大部分用来作为系统的正常运行开销,然后预留出一部分作为内存碎片整理的中转站,这部分预留内存在系统正常运行时不参与业务内存分配;

统计单元202,用于对内存碎片的大小进行统计,需要说明的是,可以由内存碎片监控模块来确定是否有必要进行内存整理,如无必要则循环监控和统计;

迁移单元203,用于当内存碎片的大小超过预设阈值时,将当前内存中的业务迁移到所述预留内存中,需要说明的是,可以调用业务内存计算模块计算出当前系统所运行的业务内存大小,当达到一定条件时,将这些业务迁移进预留内存中,在此期间对业务并不产生影响,因此用户没有受到任何影响;

整理单元204,用于整理当前内存中的碎片,初始化当前内存,具体的,可以由内存碎片整理模块进行内存碎片整理。

本申请实施例提供的第二种在线内存碎片整理装置,是在上述第一种在线内存碎片整理装置的基础上,还包括如下技术特征:

迁回单元,用于将迁移到所述预留内存中的业务迁回到当前内存中。

也就是说,将业务恢复到系统正常运行内存中,清理出预留内存即可,这样就不再存在内存碎片,提高内存的利用率。

本申请实施例提供的第三种在线内存碎片整理装置,是在上述第一种在线内存碎片整理装置的基础上,还包括如下技术特征:

所述迁移单元具体用于当当前内存中的业务所占空间大于所述预留内存的空间时,将所述当前内存中的业务拆分成多个部分,并依次迁移到所述预留内存中。

举例来说,业务所用内存有5G而预留内存只有4G,则将业务拆成3G的块和2G的块,先将3G的业务内存迁移进预留内存中,然后将这3G所在的内存区域整理了,再将业务内存迁移回来,再把其余的业务内存迁移进预留内存中,接着整理完剩下内存碎片,最后将这块业务迁移回系统内存中。

本申请实施例提供的第四种在线内存碎片整理装置,是在上述第一种至第三种在线内存碎片整理装置中任一种的基础上,还包括如下技术特征:

所述迁移单元具体用于当小于128K的内存碎片的大小超过内存总量的50%至70%时,将当前内存中的业务迁移到所述预留内存中。当然这只是其中的一种判断方式,还可以根据具体情况采用其他判断方式,此处并不限制。

综上所述,本申请实施例提供的上述方法和装置,可以在不关机的情况下整理完所有的内存碎片,因此不会影响业务的正常运行。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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