CN110096357A - 一种分布式系统的内存资源清理方法及装置 - Google Patents
一种分布式系统的内存资源清理方法及装置 Download PDFInfo
- Publication number
- CN110096357A CN110096357A CN201910252077.0A CN201910252077A CN110096357A CN 110096357 A CN110096357 A CN 110096357A CN 201910252077 A CN201910252077 A CN 201910252077A CN 110096357 A CN110096357 A CN 110096357A
- Authority
- CN
- China
- Prior art keywords
- event
- memory
- cleaning
- strategy
- deletion
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
Abstract
本发明实施例公开了一种分布式系统的内存资源清理方法及装置,方法包括:获取分布式系统中各分布式任务的保持事件数量和各分布式任务对应进程的已使用内存;若根据所述保持事件数量和所述已使用内存判断需要执行内存资源占用清理,则获取删除事件策略;根据所述删除事件策略对有序时间槽内存储的内存资源进行清理操作。本发明实施例通过保持事件数量和已使用内存来判断是否需要执行内存资源占用清理,需要清理时,根据删除事件策略对有序时间槽内存储的内存资源进行清理操作,能够及时对分布式系统内占用的内存资源进行清理,保证分布式系统的性能。
Description
技术领域
本发明实施例涉及计算机技术领域,具体涉及一种分布式系统的内存资源清理方法及装置。
背景技术
现有系统中各任务的内存资源清理均是通过单机实现。但是,随着数据量逐渐增大,单机系统无法满足需求,需要采用分布式系统。
然而,在应用越来越广泛的分布式系统中,各“分布式任务”运行在分布式系统的多台计算机的多个进程中,随着分布式系统的运行时间越来越长,分布式任务也越来越多,需要对部分任务的事件进行清理,否则将导致分布式系统的性能越来越低。
现有的单机内存资源清理方式无法对分布式系统的事件进行清理,从而导致分布式系统的性能越来越低。
发明内容
由于现有方法存在上述问题,本发明实施例提出一种分布式系统的内存资源清理方法及装置。
第一方面,本发明实施例提出一种分布式系统的内存资源清理方法,包括:
获取分布式系统中各分布式任务的保持事件数量和各分布式任务对应进程的已使用内存;
若根据所述保持事件数量和所述已使用内存判断需要执行内存资源占用清理,则获取删除事件策略;
根据所述删除事件策略对有序时间槽内存储的内存资源进行清理操作。
第二方面,本发明实施例还提出一种分布式系统的内存资源清理装置,包括:
数据获取模块,用于获取分布式系统中各分布式任务的保持事件数量和各分布式任务对应进程的已使用内存;
策略获取模块,用于若根据所述保持事件数量和所述已使用内存判断需要执行内存资源占用清理,则获取删除事件策略;
资源清理模块,用于根据所述删除事件策略对有序时间槽内存储的内存资源进行清理操作。
第三方面,本发明实施例还提出一种电子设备,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中:
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行上述方法。
第四方面,本发明实施例还提出一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机程序,所述计算机程序使所述计算机执行上述方法。
由上述技术方案可知,本发明实施例通过保持事件数量和已使用内存来判断是否需要执行内存资源占用清理,需要清理时,根据删除事件策略对有序时间槽内存储的内存资源进行清理操作,能够及时对分布式系统内占用的内存资源进行清理,保证分布式系统的性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些图获得其他的附图。
图1为本发明一实施例提供的一种分布式系统的内存资源清理方法的流程示意图;
图2为本发明一实施例提供的一种内存资源占用采集的流程示意图;
图3为本发明一实施例提供的一种内存资源占用清理的流程示意图;
图4为本发明一实施例提供的一种分布式系统的内存资源清理装置的结构示意图;
图5为本发明一实施例提供的电子设备的逻辑框图。
具体实施方式
下面结合附图,对本发明的具体实施方式作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
图1示出了本实施例提供的一种分布式系统的内存资源清理方法的流程示意图,包括:
S101、获取分布式系统中各分布式任务的保持事件数量和各分布式任务对应进程的已使用内存。
其中,在当前的分布式系统中,各分布式任务运行在多台计算机的多个进程中。每个分布式任务均有唯一的任务标识,以区别于分布式系统中的其它分布式任务,且各个分布式任务的计算性能的保护相互独立,即按照分布式任务为单位进行计算性能的保护。
所述保持事件数量为有序时间槽内当前运行的分布式任务的事件数量。
所述已使用内存有序时间槽内当前运行的分布式任务对应的进程使用的内存。
S102、若根据所述保持事件数量和所述已使用内存判断需要执行内存资源占用清理,则获取删除事件策略。
其中,删除事件策略drop.events.strategy用于配置保持事件数量和已使用内存均满足特定标准时,删除有序时间槽内存储的内存资源的计算事件的策略,可以配置为oldest或latest。oldest表示删除最旧任务计算事件,latest表示删除最新任务计算事件。
S103、根据所述删除事件策略对有序时间槽内存储的内存资源进行清理操作。
其中,所述有序时间槽为存储所有内存资源的单元。
需要说明的是,本实施例中的分布式任务仅包含保持事件集合的窗口任务,因为窗口任务按照“有序时间槽”存储事件集合;对于处理流式数据(单一事件)的分布式任务,本实施例不作讨论。
本实施例通过保持事件数量和已使用内存来判断是否需要执行内存资源占用清理,需要清理时,根据删除事件策略对有序时间槽内存储的内存资源进行清理操作,能够及时对分布式系统内占用的内存资源进行清理,保证分布式系统的性能。
进一步地,在上述方法实施例的基础上,S102中所述根据所述保持事件数量和所述已使用内存判断需要执行内存资源占用清理,具体包括:
若所述保持事件数量大于事件数量阈值,或,所述已使用内存大于内存阈值,则确定需要执行内存资源占用清理。
其中,所述事件数量阈值用于配置有序时间槽内的窗口任务的保持事件数量的最大值,单位是个,如100000000个。当窗口任务的保持事件数量达到此值,说明此任务是热点任务。
所述内存阈值用于配置执行内存资源占用清理时,内存资源需达到的最小内存大小,单位是字节(B),如1073741824B。当窗口任务占用内存大小达到此值,说明此任务是热点任务。
举例来说,事件数量阈值为100000000个,内存阈值为1073741824B:
若有序时间槽内的窗口任务的保持事件数量为200000000个,内存阈值为73741824B,则需要执行内存资源占用清理;
若有序时间槽内的窗口任务的保持事件数量为20000000个,内存阈值为1173741824B,则需要执行内存资源占用清理;
若有序时间槽内的窗口任务的保持事件数量为200000000个,内存阈值为1173741824B,则需要执行内存资源占用清理;
若有序时间槽内的窗口任务的保持事件数量为20000000个,内存阈值为73741824B,则不需要执行内存资源占用清理。
通过实时采集分布式任务的内存资源使用情况,即各分布式任务的保持事件数量和各分布式任务对应进程的已使用内存,并根据保持事件数量和已使用内存进行实时判断,能够在满足阈值条件时,立刻执行内存资源占用清理,优雅降级热点分布式任务的计算性能,保证系统的正常运行。
进一步地,在上述方法实施例的基础上,S103具体包括:
S1031、获取所述有序时间槽内的事件总数,并根据所述删除事件比例和所述事件总数计算得到删除事件数量。
S1032、若所述删除事件策略为删除最旧任务计算事件,则对所述有序时间槽内最旧的所述删除事件数量的事件进行清理操作。
S1033、若所述删除事件策略为删除最新任务计算事件,则对所述有序时间槽内最新的所述删除事件数量的事件进行清理操作。
其中,删除事件比例drop.events.ratio用于配置保持事件数量和已使用内存均满足特定标准时,所删除的有序时间槽内存储的内存资源的任务计算事件的比例,如0.1。
在具体执行本实施例的过程中,通过内存资源保护配置、内存资源占用采集、内存资源占用清理三个部分,来实现实时精确的分布式计算性能的保护,具有面向分布式、实时精确、优雅降级等优点。
A)内存资源保护配置,用于设置事件数量阈值、内存阈值及删除事件策略;
B)内存资源占用采集,用于实时采集各分布式任务的保持事件数量和各分布式任务对应进程的已使用内存,以此判断是否需要执行内存资源占用清理;
C)内存资源占用清理,用于根据“删除事件策略”和“删除事件比例”,对有序时间槽内存储的内存资源的事件集合进行清理操作。
具体地,内存资源占用采集的流程示意图如图2所示,配置了系统参数“最大事件数量阈值(事件数量阈值)”、“最大内存大小(内存阈值)”、“最大内存比例”、“最小内存比例”、“删除事件策略”、“删除事件比例”和“间隔时间”后,计算“内存限制大小memoryLimitSize”,memoryLimitSize在任务执行期间为固定值,memoryLimitSize设置为“进程设置的最大内存*0.9”、“最大内存大小max.memory.size”和“最大操作系统物理内存maxPhysicalMemorySize”三个数中的最小值,其中最大内存比例max.memory.ratio用于配置执行内存资源占用清理时,内存资源需达到“操作系统总物理内存totalPhysicalMemorySize”的最小比例,如0.5。“最大操作系统物理内存maxPhysicalMemorySize”设置为“最大内存比例max.memory.ratio”与“操作系统总物理内存totalPhysicalMemorySize”之积,当窗口任务占用内存大于maxPhysicalMemorySize,说明此任务是热点任务。当分布式任务开始执行后,实时记录任务“保持事件数量eventCount”,插入事件“有序时间槽TimeTableSlot”时,eventCount加1,“有序时间槽TimeTableSlot”的事件超时,则eventCount减1;同时,定时“间隔时间interval.ms”监测任务所在进程“已使用内存usedMemory”,其中间隔时间interval.ms用于配置内存资源占用采集频率,单位是毫秒(ms),如500ms;将“已使用内存usedMemory”设置为“当前分配的最大内存totalMemory”与“当前剩余内存freeMemory”之差;如果“保持事件数量eventCount”大于“最大事件数量阈值max.events.count”,或者“已使用内存usedMemory”大于“内存限制大小memoryLimitSize”,则需要执行内存资源占用清理。
内存资源占用清理的流程示意图如图3所示,配置系统参数“删除事件的策略”和“删除事件比例”后,计算“删除事件数量”,该“删除事件数量”为“窗口任务保持的元素数量(有序时间槽内的事件总数)”与“删除事件比例”的乘积;然后根据“删除事件的策略”依次清理“最新任务计算事件”或者“最旧任务计算事件”,直到到达“删除事件数量”。
现有的单机系统的任务运行在单台计算机的单个进程中,较为简单,而分布式任务运行在多台计算机的多个进程中,较为复杂。通过本实施例提供的内存资源占用清理处理方法,可以根据实时的内存资源采集数据,精确地清理内存资源占用,保障分布式系统的实时性和准确性,是保证分布式系统实时性不可或缺的一部分,在最大化满足保护分布式系统安全运行的需求的前提下,优雅降级热点分布式任务的计算性能,保证系统的正常运行。
图4示出了本实施例提供的一种分布式系统的内存资源清理装置的结构示意图,所述装置包括:数据获取模块401、策略获取模块402和资源清理模块403,其中:
所述数据获取模块401用于获取分布式系统中各分布式任务的保持事件数量和各分布式任务对应进程的已使用内存;
所述策略获取模块402用于若根据所述保持事件数量和所述已使用内存判断需要执行内存资源占用清理,则获取删除事件策略;
所述资源清理模块403用于根据所述删除事件策略对有序时间槽内存储的内存资源进行清理操作。
具体地,所述数据获取模块401获取分布式系统中各分布式任务的保持事件数量和各分布式任务对应进程的已使用内存;所述策略获取模块402若根据所述保持事件数量和所述已使用内存判断需要执行内存资源占用清理,则获取删除事件策略;所述资源清理模块403根据所述删除事件策略对有序时间槽内存储的内存资源进行清理操作。
本实施例通过保持事件数量和已使用内存来判断是否需要执行内存资源占用清理,需要清理时,根据删除事件策略对有序时间槽内存储的内存资源进行清理操作,能够及时对分布式系统内占用的内存资源进行清理,保证分布式系统的性能。
进一步地,在上述装置实施例的基础上,所述策略获取模块402具体用于若所述保持事件数量大于事件数量阈值,或,所述已使用内存大于内存阈值,则确定需要执行内存资源占用清理。
进一步地,在上述装置实施例的基础上,所述删除事件策略包括删除最旧任务计算事件或删除最新任务计算事件。
进一步地,在上述装置实施例的基础上,所述资源清理模块403具体包括:
获取所述有序时间槽内的事件总数,并根据所述删除事件比例和所述事件总数计算得到删除事件数量;
若所述删除事件策略为删除最旧任务计算事件,则对所述有序时间槽内最旧的所述删除事件数量的事件进行清理操作;
若所述删除事件策略为删除最新任务计算事件,则对所述有序时间槽内最新的所述删除事件数量的事件进行清理操作。
本实施例所述的分布式系统的内存资源清理装置可以用于执行上述方法实施例,其原理和技术效果类似,此处不再赘述。
参照图5,所述电子设备,包括:处理器(processor)501、存储器(memory)502和总线503;
其中,
所述处理器501和存储器502通过所述总线503完成相互间的通信;
所述处理器501用于调用所述存储器502中的程序指令,以执行上述各方法实施例所提供的方法。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法。
本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种分布式系统的内存资源清理方法,其特征在于,包括:
获取分布式系统中各分布式任务的保持事件数量和各分布式任务对应进程的已使用内存;
若根据所述保持事件数量和所述已使用内存判断需要执行内存资源占用清理,则获取删除事件策略;
根据所述删除事件策略对有序时间槽内存储的内存资源进行清理操作。
2.根据权利要求1所述的方法,其特征在于,所述根据所述保持事件数量和所述已使用内存判断需要执行内存资源占用清理,具体包括:
若所述保持事件数量大于事件数量阈值,或,所述已使用内存大于内存阈值,则确定需要执行内存资源占用清理。
3.根据权利要求1所述的方法,其特征在于,所述删除事件策略包括删除最旧任务计算事件或删除最新任务计算事件。
4.根据权利要求3所述的方法,其特征在于,所述根据所述删除事件策略对有序时间槽内存储的内存资源进行清理操作,具体包括:
获取所述有序时间槽内的事件总数,并根据所述删除事件比例和所述事件总数计算得到删除事件数量;
若所述删除事件策略为删除最旧任务计算事件,则对所述有序时间槽内最旧的所述删除事件数量的事件进行清理操作;
若所述删除事件策略为删除最新任务计算事件,则对所述有序时间槽内最新的所述删除事件数量的事件进行清理操作。
5.一种分布式系统的内存资源清理装置,其特征在于,包括:
数据获取模块,用于获取分布式系统中各分布式任务的保持事件数量和各分布式任务对应进程的已使用内存;
策略获取模块,用于若根据所述保持事件数量和所述已使用内存判断需要执行内存资源占用清理,则获取删除事件策略;
资源清理模块,用于根据所述删除事件策略对有序时间槽内存储的内存资源进行清理操作。
6.根据权利要求5所述的装置,其特征在于,所述策略获取模块具体用于若所述保持事件数量大于事件数量阈值,或,所述已使用内存大于内存阈值,则确定需要执行内存资源占用清理。
7.根据权利要求5所述的装置,其特征在于,所述删除事件策略包括删除最旧任务计算事件或删除最新任务计算事件。
8.根据权利要求7所述的装置,其特征在于,所述资源清理模块具体包括:
获取所述有序时间槽内的事件总数,并根据所述删除事件比例和所述事件总数计算得到删除事件数量;
若所述删除事件策略为删除最旧任务计算事件,则对所述有序时间槽内最旧的所述删除事件数量的事件进行清理操作;
若所述删除事件策略为删除最新任务计算事件,则对所述有序时间槽内最新的所述删除事件数量的事件进行清理操作。
9.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中:
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至4任一所述的方法。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机程序,所述计算机程序使所述计算机执行如权利要求1至4任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910252077.0A CN110096357A (zh) | 2019-03-29 | 2019-03-29 | 一种分布式系统的内存资源清理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910252077.0A CN110096357A (zh) | 2019-03-29 | 2019-03-29 | 一种分布式系统的内存资源清理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110096357A true CN110096357A (zh) | 2019-08-06 |
Family
ID=67444137
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910252077.0A Pending CN110096357A (zh) | 2019-03-29 | 2019-03-29 | 一种分布式系统的内存资源清理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110096357A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110153971A1 (en) * | 2009-12-17 | 2011-06-23 | International Business Machines Corporation | Data Processing System Memory Allocation |
CN103150259A (zh) * | 2013-03-22 | 2013-06-12 | 华为技术有限公司 | 一种内存回收方法和装置 |
CN105701025A (zh) * | 2015-12-31 | 2016-06-22 | 华为技术有限公司 | 一种内存回收方法及装置 |
CN109428912A (zh) * | 2017-08-24 | 2019-03-05 | 阿里巴巴集团控股有限公司 | 一种分布式系统资源分配方法、装置及系统 |
-
2019
- 2019-03-29 CN CN201910252077.0A patent/CN110096357A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110153971A1 (en) * | 2009-12-17 | 2011-06-23 | International Business Machines Corporation | Data Processing System Memory Allocation |
CN103150259A (zh) * | 2013-03-22 | 2013-06-12 | 华为技术有限公司 | 一种内存回收方法和装置 |
CN105701025A (zh) * | 2015-12-31 | 2016-06-22 | 华为技术有限公司 | 一种内存回收方法及装置 |
CN109428912A (zh) * | 2017-08-24 | 2019-03-05 | 阿里巴巴集团控股有限公司 | 一种分布式系统资源分配方法、装置及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110704173A (zh) | 任务调度方法、调度系统、电子设备及计算机存储介质 | |
CN109634728A (zh) | 作业调度方法、装置、终端设备及可读存储介质 | |
CN109815011A (zh) | 一种数据处理的方法和装置 | |
CN109144683A (zh) | 任务处理方法、装置、系统及电子设备 | |
CN106062716B (zh) | 在单任务系统中实现多任务的方法、装置及单任务系统 | |
CN105808346B (zh) | 一种任务调度方法与装置 | |
CN106325984A (zh) | 一种大数据任务调度装置 | |
CN108664394A (zh) | 一种内存泄露过程追溯方法及装置 | |
CN109766172A (zh) | 一种异步任务调度方法以及装置 | |
US7827282B2 (en) | System and method for processing hardware or service usage data | |
CN106528318A (zh) | 线程死循环检测方法和装置 | |
CN114896166A (zh) | 场景库构建方法、装置、电子设备及存储介质 | |
CN109947568A (zh) | 定时任务处理方法、系统、计算机设备及存储介质 | |
CN113705997A (zh) | 一种自动驾驶出租车双体系的派单方法及应用 | |
CN109447428B (zh) | 整车生产线序排产的确定方法、装置及智能终端 | |
CN108268351A (zh) | 一种进程运行状态精确监控方法及系统 | |
CN110083504A (zh) | 分布式任务的运行状态监控方法及装置 | |
CN106530059A (zh) | 订单处理方法及系统 | |
CN110096357A (zh) | 一种分布式系统的内存资源清理方法及装置 | |
CN110096339A (zh) | 一种基于系统负载实现的扩缩容配置推荐系统及方法 | |
CN110109749A (zh) | 一种分布式系统的计算资源清理方法及装置 | |
CN109947015B (zh) | 任务的执行方法及主控制器 | |
CN107220114A (zh) | 基于资源统一调度的分布式资源调度方法 | |
CN103207596A (zh) | 用于在冗余的自动化系统中同步地执行程序的方法 | |
CN110109799A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190806 |