CN106708746B - 一种在线内存碎片整理方法和装置 - Google Patents
一种在线内存碎片整理方法和装置 Download PDFInfo
- Publication number
- CN106708746B CN106708746B CN201611265012.2A CN201611265012A CN106708746B CN 106708746 B CN106708746 B CN 106708746B CN 201611265012 A CN201611265012 A CN 201611265012A CN 106708746 B CN106708746 B CN 106708746B
- Authority
- CN
- China
- Prior art keywords
- memory
- service
- current
- fragments
- reserved
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本申请公开了一种在线内存碎片整理方法和装置,该方法包括将一部分内存设置为预留内存;对内存碎片的大小进行统计;当内存碎片的大小超过预设阈值时,将当前内存中的业务迁移到所述预留内存中;整理当前内存中的碎片,初始化当前内存,该装置包括设置单元,用于将一部分内存设置为预留内存;统计单元,用于对内存碎片的大小进行统计;迁移单元,用于当内存碎片的大小超过预设阈值时,将当前内存中的业务迁移到所述预留内存中;整理单元,用于整理当前内存中的碎片,初始化当前内存。上述方法和装置,能够在不停机的情况下初始化所有的内存,增加系统的稳定性和可用性。
Description
技术领域
本发明属于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%时,将当前内存中的业务迁移到所述预留内存中。当然这只是其中的一种判断方式,还可以根据具体情况采用其他判断方式,此处并不限制。
综上所述,本申请实施例提供的上述方法和装置,可以在不关机的情况下整理完所有的内存碎片,因此不会影响业务的正常运行。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (8)
1.一种在线内存碎片整理方法,其特征在于,包括:
将一部分内存设置为预留内存;
对内存碎片的大小进行统计;
当内存碎片的大小超过预设阈值时,将当前内存中的业务迁移到所述预留内存中;
整理当前内存中的碎片,初始化当前内存。
2.根据权利要求1所述的在线内存碎片整理方法,其特征在于,在初始化当前内存之后,还包括:
将迁移到所述预留内存中的业务迁回到当前内存中。
3.根据权利要求1所述的在线内存碎片整理方法,其特征在于,
所述将当前内存中的业务迁移到所述预留内存中,整理当前内存中的碎片,初始化当前内存为:当当前内存中的业务所占空间大于所述预留内存的空间时,将所述当前内存中的业务拆分成多个部分,并依次将每一部分业务迁移到所述预留内存中,整理迁移的每一部分业务所对应的内存的碎片,并在整理完成后将每一部分业务迁移回当前内存中。
4.根据权利要求1-3任一项所述的在线内存碎片整理方法,其特征在于,
所述当内存碎片的大小超过预设阈值时,将当前内存中的业务迁移到所述预留内存中为:
当小于128K的内存碎片的大小超过内存总量的50%时,将当前内存中的业务迁移到所述预留内存中。
5.一种在线内存碎片整理装置,其特征在于,包括:
设置单元,用于将一部分内存设置为预留内存;
统计单元,用于对内存碎片的大小进行统计;
迁移单元,用于当内存碎片的大小超过预设阈值时,将当前内存中的业务迁移到所述预留内存中;
整理单元,用于整理当前内存中的碎片,初始化当前内存。
6.根据权利要求5所述的在线内存碎片整理装置,其特征在于,还包括:
迁回单元,用于将迁移到所述预留内存中的业务迁回到当前内存中。
7.根据权利要求5所述的在线内存碎片整理装置,其特征在于,
所述迁移单元和整理单元具体用于当当前内存中的业务所占空间大于所述预留内存的空间时,将所述当前内存中的业务拆分成多个部分,并依次将每一部分业务迁移到所述预留内存中,整理迁移的每一部分业务所对应的内存的碎片,并在整理完成后将每一部分业务迁移回当前内存中。
8.根据权利要求5-7任一项所述的在线内存碎片整理装置,其特征在于,
所述迁移单元具体用于当小于128K的内存碎片的大小超过内存总量的50%时,将当前内存中的业务迁移到所述预留内存中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611265012.2A CN106708746B (zh) | 2016-12-30 | 2016-12-30 | 一种在线内存碎片整理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611265012.2A CN106708746B (zh) | 2016-12-30 | 2016-12-30 | 一种在线内存碎片整理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106708746A CN106708746A (zh) | 2017-05-24 |
CN106708746B true CN106708746B (zh) | 2019-12-31 |
Family
ID=58906496
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611265012.2A Active CN106708746B (zh) | 2016-12-30 | 2016-12-30 | 一种在线内存碎片整理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106708746B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107193753B (zh) * | 2017-06-16 | 2020-08-04 | 深圳市万普拉斯科技有限公司 | 内存重整方法、装置、电子设备及可读存储介质 |
CN107506237A (zh) * | 2017-07-07 | 2017-12-22 | 杭州联吉技术有限公司 | 一种网络摄像机及其内存整理方法和装置 |
CN107506496B (zh) * | 2017-09-28 | 2021-10-22 | 北京小米移动软件有限公司 | 碎片整理方法、装置及计算机可读存储介质 |
CN112363828B (zh) * | 2020-10-30 | 2024-01-12 | 北京罗克维尔斯科技有限公司 | 内存碎片管理方法、装置、车载系统及车辆 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6625673B1 (en) * | 2000-05-01 | 2003-09-23 | Hewlett-Packard Development Company, Lp. | Method for assigning addresses to input/output devices |
US6865657B1 (en) * | 2000-06-02 | 2005-03-08 | Sun Microsystems, Inc. | Garbage collector for a virtual heap |
CN101320351A (zh) * | 2008-06-27 | 2008-12-10 | 华中科技大学 | 内存的分配、清理和释放方法及内存管理的装置 |
CN102156675A (zh) * | 2010-02-12 | 2011-08-17 | 中兴通讯股份有限公司 | 一种内存分配方法及装置 |
CN102968380A (zh) * | 2012-11-02 | 2013-03-13 | 深圳市同洲电子股份有限公司 | 内存文件系统中内存分区的管理方法和装置 |
CN105404590A (zh) * | 2015-11-10 | 2016-03-16 | 浪潮(北京)电子信息产业有限公司 | 一种内存块合并方法与系统 |
CN105975398A (zh) * | 2015-12-07 | 2016-09-28 | 国家电网公司 | 一种内存碎片管理方法 |
-
2016
- 2016-12-30 CN CN201611265012.2A patent/CN106708746B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6625673B1 (en) * | 2000-05-01 | 2003-09-23 | Hewlett-Packard Development Company, Lp. | Method for assigning addresses to input/output devices |
US6865657B1 (en) * | 2000-06-02 | 2005-03-08 | Sun Microsystems, Inc. | Garbage collector for a virtual heap |
CN101320351A (zh) * | 2008-06-27 | 2008-12-10 | 华中科技大学 | 内存的分配、清理和释放方法及内存管理的装置 |
CN102156675A (zh) * | 2010-02-12 | 2011-08-17 | 中兴通讯股份有限公司 | 一种内存分配方法及装置 |
CN102968380A (zh) * | 2012-11-02 | 2013-03-13 | 深圳市同洲电子股份有限公司 | 内存文件系统中内存分区的管理方法和装置 |
CN105404590A (zh) * | 2015-11-10 | 2016-03-16 | 浪潮(北京)电子信息产业有限公司 | 一种内存块合并方法与系统 |
CN105975398A (zh) * | 2015-12-07 | 2016-09-28 | 国家电网公司 | 一种内存碎片管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106708746A (zh) | 2017-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106708746B (zh) | 一种在线内存碎片整理方法和装置 | |
CN109375985B (zh) | 内存动态管理方法及装置 | |
CN104142860A (zh) | 应用服务系统的资源调整方法与装置 | |
CN104601492A (zh) | 一种nfv架构下进行业务流控的方法及装置 | |
CN106874100B (zh) | 计算资源分配方法及装置 | |
CN111277640B (zh) | 用户请求处理方法、装置、系统、计算机设备和存储介质 | |
WO2016183918A1 (zh) | 存储空间处理方法及装置 | |
CN107229660A (zh) | 一种数据去重的方法和设备 | |
CN104580194A (zh) | 面向视频应用的虚拟化资源管理方法及装置 | |
CN106681475A (zh) | 降低移动终端功耗的方法及移动终端 | |
CN109428950B (zh) | Ip地址池自动调度方法和系统 | |
CN104461731A (zh) | 一种动态资源扩展中虚拟机资源回收方法和装置 | |
CN107203256B (zh) | 一种网络功能虚拟化场景下的节能分配方法与装置 | |
CN103488538A (zh) | 云计算系统中的应用扩展装置和应用扩展方法 | |
CN107370783B (zh) | 一种云计算集群资源的调度方法及装置 | |
CN109388552B (zh) | 启动应用程序的时长的确定方法、装置及存储介质 | |
CN104378239A (zh) | 基于集群框架的快速可靠性指标统计系统及方法 | |
CN102904952B (zh) | 一种自适应性的高效处理海量数据入库的系统及方法 | |
CN103973811A (zh) | 一种可动态迁移的高可用集群管理方法 | |
CN112654077B (zh) | 节能方法及装置、计算机可存储介质 | |
CN107680374A (zh) | 一种过车数据的智能采集调度系统 | |
CN110399216B (zh) | 一种整机箱功耗的分配方法、系统、装置及可读存储介质 | |
CN107193362B (zh) | 一种增强云计算环境节能装置 | |
CN111708614A (zh) | 一种虚拟机资源参数动态调节方法、系统及相关设备 | |
CN107665163B (zh) | 自动化数据回溯的方法与系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20191125 Address after: 215100 No. 1 Guanpu Road, Guoxiang Street, Wuzhong Economic Development Zone, Suzhou City, Jiangsu Province Applicant after: Suzhou Wave Intelligent Technology Co., Ltd. Address before: 450018 Henan province Zheng Dong New District of Zhengzhou City Xinyi Road No. 278 16 floor room 1601 Applicant before: Zhengzhou Yunhai Information Technology Co. Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |