CN117472586B - 时序模型的训练方法及装置、内存管理方法及装置 - Google Patents
时序模型的训练方法及装置、内存管理方法及装置 Download PDFInfo
- Publication number
- CN117472586B CN117472586B CN202311658915.7A CN202311658915A CN117472586B CN 117472586 B CN117472586 B CN 117472586B CN 202311658915 A CN202311658915 A CN 202311658915A CN 117472586 B CN117472586 B CN 117472586B
- Authority
- CN
- China
- Prior art keywords
- memory
- sequence
- model
- time
- time period
- 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
- 238000007726 management method Methods 0.000 title claims abstract description 66
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000012549 training Methods 0.000 title claims abstract description 40
- 238000012360 testing method Methods 0.000 claims description 40
- 238000012545 processing Methods 0.000 claims description 16
- 230000006870 function Effects 0.000 claims description 13
- 238000004364 calculation method Methods 0.000 claims description 12
- 230000009466 transformation Effects 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 4
- 238000007689 inspection Methods 0.000 claims description 3
- 238000013112 stability test Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 230000008602 contraction Effects 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 5
- 238000005311 autocorrelation function Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000005070 sampling Methods 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000001932 seasonal effect Effects 0.000 description 3
- 238000007476 Maximum Likelihood Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 235000015927 pasta Nutrition 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
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/5016—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 the resource being the memory
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本说明书实施例提供一种时序模型的训练方法及装置、一种内存管理方法及装置。其中内存管理方法包括:首先,获取通过内存管理模块采集的目标内存序列,其包括按照时间顺序排列的对应T个时间周期的T个内存使用量,其中各个内存使用量为对应时间周期内的最大内存使用量,所述最大内存使用量针对Java虚拟机的堆外内存而采集得到;接着,基于所述目标内存序列,利用训练好的时序模型进行预测处理,得到未来第T+1个时间周期至第T+t个时间周期中各个时间周期内的预测内存使用量;之后,根据所述预测内存使用量和对应的时间周期,通过所述内存管理模块提前调整内存。
Description
技术领域
本说明书一个或多个实施例涉及计算机技术领域,尤其涉及一种时序模型的训练方法及装置、内存管理方法及装置、一种计算机可读存储介质,以及一种计算设备。
背景技术
Java虚拟机 (Java Virtual Machine,简称JVM)对Java程序的运行至关重要,使得Java拥有“一次编译,多次运行”的特点。任何平台只要装有针对于该平台的Java虚拟机,Java程序的字节码文件(.class)就可以在该平台上运行。
Java进程内存包括图1示意的堆内内存和堆外内存,其中堆内内存由JVM管控,堆外内存意味着把一些对象的实例分配在JVM堆内内存以外的内存区域,这些内存直接受操作***(而非JVM)管理,因为这部分内存区域直接受操作***的管理,别的进程和设备(例如GPU)可以直接通过操作***对其进行访问,从而减少了从JVM中复制内存数据的过程。
然而,目前操作***对堆外内存的管理难以满足真实使用场景中的更高要求,因此,迫切需要一种方案,可以提升堆外内存的管理效率。
发明内容
本说明书实施例描述一种时序模型的训练方法及装置、以及一种内存管理方法及装置,可以实现对内存分配进行弹性的扩缩容,从而有效提高内存管理效率。
根据第一方面,提供一种时序模型的训练方法。该方法包括:获取通过内存管理模块采集的历史内存序列,其包括按照时间顺序排列的T个内存使用量,其中各个内存使用量为对应时间周期内的最大内存使用量;所述最大内存使用量针对Java虚拟机的堆外内存而采集得到。利用所述历史内存序列训练时序模型;其中,训练好的时序模型用于预测未来时间周期内的内存使用量。
在一些实施例中,其中,利用所述历史内存序列训练所述时序模型,包括:计算所述历史内存序列的序列相关性指标,以及,获取根据指标计算结果为所述时序模型中的超参数设定的参数值。基于所述超参数的参数值,利用所述历史内存序列优化目标函数,得到所述时序模型中未知参数的参数估计值,以确定训练好的时序模型。
进一步,在一些具体的实施例中,在计算所述历史内存序列的序列相关性指标之前,所述方法还包括:对所述历史内存序列进行平稳性检验;在检验结果指示所述历史内存序列不平稳的情况下,对所述历史内存序列进行差分变换处理。
在一些具体的实施例中,获取根据指标计算结果为所述时序模型中的超参数设定的参数值,包括:接收基于所述指标计算结果针对所述时序模型中的超参数输入的多组可选参数值;根据预定的信息准则,将所述超参数设定为所述多组可选参数值中的第一组参数值。
更进一步,在一个例子中,确定训练好的时序模型,包括:对所述时序模型进行预定检验;在检验未通过的情况下,根据所述信息准则将所述超参数设定为所述多组可选参数值中的第二组参数值,并基于所述第二组参数值重新确定所述时序模型中未知参数的参数估计值。
示例性的,所述预定检验包括对参数估计值的显著性检验。
示例性的,所述预定检验包括:利用所述时序模型对测试用内存序列进行预测,并确定预测出的序列和对应的标签序列之间的残差序列;判断所述残差序列是否属于白噪声序列,若不属于则指示检验未通过。
在一个实施例中,利用所述历史内存序列训练时序模型,包括:利用所述历史内存序列分别训练多个时序模型,该多个时序模型包括prophet模型、或Holt Winter模型。
根据第二方面,提供一种内存管理方法,包括:获取通过内存管理模块采集的目标内存序列,其包括按照时间顺序排列的对应T个时间周期的T个内存使用量,其中各个内存使用量为对应时间周期内的最大内存使用量,所述最大内存使用量针对Java虚拟机的堆外内存而采集得到;基于所述目标内存序列,利用训练好的时序模型进行预测处理,得到未来第T+1个时间周期至第T+t个时间周期中各个时间周期内的预测内存使用量;根据所述预测内存使用量和对应的时间周期,通过所述内存管理模块提前调整内存。
在一个实施例中,基于所述内存序列,利用训练好的时序模型进行预测处理,得到未来第T+1个时间周期至第T+t个时间周期中各个时间周期内的预测内存使用量,包括:逐个预测所述第T+1个时间周期至第T+t个时间周期的内存使用量,其中,针对任意的第T+i个时间周期,将向前回溯T个时间周期所对应的T个内存使用量形成的内存序列输入所述时序模型,得到该第T+i个时间周期对应的预测内存使用量。
根据第三方面,提供一种时序模型的训练装置,所述装置包括:历史序列获取单元,配置为获取通过内存管理模块采集的历史内存序列,其包括按照时间顺序排列的T个内存使用量,其中各个内存使用量为对应时间周期内的最大内存使用量,所述最大内存使用量针对Java虚拟机的堆外内存而采集得到;时序模型训练单元,配置为利用所述历史内存序列训练时序模型;其中,训练好的时序模型用于预测未来时间周期内的内存使用量。
根据第四方面,提供一种内存管理装置,包括:目标序列获取单元,配置为获取通过内存管理模块采集的目标内存序列,其包括按照时间顺序排列的对应T个时间周期的T个内存使用量,其中各个内存使用量为对应时间周期内的最大内存使用量,所述最大内存使用量针对Java虚拟机的堆外内存而采集得到;内存预测单元,配置为基于所述目标内存序列,利用训练好的时序模型进行预测处理,得到未来第T+1个时间周期至第T+t个时间周期中各个时间周期内的预测内存使用量;内存调整单元,配置为根据所述预测内存使用量和对应的时间周期,通过所述内存管理模块提前调整内存。
根据第五方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当上述计算机程序在计算机中执行时,令计算机执行第一方面或第二方面提供的方法。
根据第六方面,提供了一种计算设备,包括存储器和处理器,上述存储器中存储有可执行代码,该处理器执行上述可执行代码时,实现第一方面或第二方面提供的方法。
在本说明书实施例提供的上述方法和装置中,通过利用时序模型对采集的堆外内存时间序列数据进行预测, 得到未来一段时间内的堆外内存使用情况,来帮助堆外内存管理模块实现动态的扩缩容,从而提升堆外内存的使用效率和内存的整体利用率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示意Java虚拟机的堆外内存和堆内内存的管理架构示意图;
图2为本说明书实施例披露的内存管理方案的实施场景架构图;
图3为本说明书实施例披露的时序模型训练方法的流程步骤示意图;
图4为一种实施方式下的时序模型的训练流程框图;
图5为本说明书实施例披露的内存管理方法的流程步骤示意图;
图6为本说明书实施例披露的时序模型训练装置的功能结构示意图;
图7为本说明书实施例披露的内存管理装置的功能结构示意图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
承前所述,目前操作***对堆外内存的管理难以满足真实使用场景中的更高要求。比如说,在Flink堆外内存管理方式中,针对于每一个具体模块都会分配预先申请一块固定大小的堆外内存,比如网络内存、Task内存、框架内存等,每个模块都会有一个具体参数来设置大小,然而,1)每个模块大小都需要一个单独参数设置,这对于参数设置的合理性提出了挑战;2)每个模块之间堆外内存是相互隔离的,没办法共享;3)整体大小是固定的,无法动态扩缩容。
又比如说,在Spark堆外内存管理方式中,Spark 堆外内存分为存储内存和执行内存,采用动态占用机制来控制模块之间的相互占用,在一定程度上提高了内存资源的使用率,然而,1)每次堆外内存申请和释放是直接向***底层交互,效率低;2)堆外内存的大小无法给出最合理的参数。
基于以上观察和分析,申请人提出一种基于推断统计的内存弹性扩缩容方案,通过对采集的内存时间序列数据进行建模,得到未来一段时间内的内存使用情况,来帮助内存管理模块实现动态的扩缩容,从而有效提升堆外内存的管理效率。
图2为本说明书实施例披露的内存管理方案的实施场景架构图。如图2所示,机器***中的内存管理模块(Memory View Manager)管理进程内所有堆外内存的申请和释放,其中分组1和分组2示意堆外内存使用的基本分组单元,如内存页。
内存管理方案由新设计的时序分析预测模块基于内存管理模块中的内存使用数据而实施。具体地,时序分析预测模块中包括时序采集单元21、时序存储单元22、模型训练单元23和内存预测单元24,其中时序采集单元21用于从内存管理模块中获取内存使用数据构建历史内存序列,时序存储单元22用于对时序采集单元21采集的数据进行本地磁盘等存储,模型训练单元23用于读取时序存储单元22中的数据构建时序预测模型(或简称时序模型),内存预测单元24用于根据时序预测模型预测出未来的内存趋势,从而基于内存趋势定时调用内存管理模块调整堆外内存的容量大小,即控制堆外内存的扩缩容。
下面结合更多实施例,描述上述内存管理方案的具体实施步骤。
图3为本说明书实施例披露的时序模型训练方法的流程步骤示意图,所述方法的执行主体可以为任何具有计算、处理能力的装置、服务器或设备集群等,例如,可以是图2中的时序预测分析模块。如图3所示,所述方法包括以下步骤:
步骤S310,获取通过内存管理模块采集的历史内存序列,其包括按照时间顺序排列的T个内存使用量,其中各个内存使用量为对应时间周期内的最大内存使用量。可以理解,其中T为大于或等于2的整数。
示例性的,可以定时从内存管理模块中获取周期(如1min或30s等)内的最大内存使用量,从而根据依次获得的多个最大内存使用量构造多个历史内存序列。进一步,假定采集了15组数据,同时设定历史内存序列的序列长度为10,即设定T=10。此时,可以采用滑动窗口的方式,得到6个历史内存序列。
由上,可以获得一个或多个历史内存序列。
接着,在步骤S320,利用所述历史内存序列训练时序模型;其中,训练好的时序模型用于预测未来时间周期内的内存使用量。需理解,时序模型可以采用已有算法实现,如prophet模型或Holt Winter模型等。
下面结合图4,介绍在本步骤中,利用历史内存序列训练本说明书实施例中采用的时序模型的过程。以下将该时序模型称为目标时序模型或目标时序算法,以区分于其他类别的时序模型。首先需说明,目标时序算法的本质是把数据中带有趋势(trend)的、带有季节性(seasonal)或者说业务场景周期性(domain cycle)的规律先找出来,一层一层将有规律的信息从数据中抽出来,最后的数据就剩下没有规律的,或叫噪声,理想的时候是白噪声,例如,符合正态分布的噪声。
如图4所示,对目标时序模型的训练包括:步骤S402,计算历史内存序列的序列相关性指标;步骤S404,获取根据指标结果为目标时序模型中的超参数设定的参数值;步骤S406,基于超参数的参数值,利用历史内存序列优化目标函数,得到目标时序模型中未知参数的参数估计值,以确定训练好的目标时序模型。对图4中示出步骤的展开介绍如下:
首先,在步骤S402,计算历史内存序列的序列相关性指标。
在一个实施例中,考虑到目标时序模型适用于处理平稳的序列数据,由此,在执行步骤S402之前,还可以先对历史内存序列进行平稳性检验。
进一步,在检验结果指示历史内存序列不平稳的情况下,对该历史内存序列进行差分变换处理,得到变换后的平稳内存序列,用于后续处理。需理解,其中平稳性检验可以采用单位根检验,如DF单位根检验、ADF单位根检验或PP单位根检验,等等。其中差分变换处理可以按需采用一阶或多阶差分,每次差分为当前序列中在后的元素减去其相邻在前的元素。而在检验结果指示历史内存序列平稳的情况下,直接用历史内存序列进行后续处理。
在一个实施例中,上述序列相关性指标包括自相关函数(Auto-CorrelationFunction,简称ACF),其用来度量最大内存使用量在不同时期之间的相关程度。
在另一个实施例中,序列相关性指标包括偏自相关函数(Partial Auto-correlation Function,PACF),其用来度量去除中间时期的内存后,首尾两个时期之间内存的相关程度,比如说,第t个时间周期的最大内存使用量xt和第t+2个时间周期的最大内存使用量xt+2之间通过xt+1产生关联,PACF即为去除xt+1的关联后,xt和xt+1之间的相关程度。
基于以上针对序列相关性指标的指标计算结果,执行步骤S404,获取根据指标计算结果为所述目标时序模型中的超参数设定的参数值。
示例性的,目标时序模型中可以包括用于抽取序列不同角度规律的以下组件:
组件1:
含义1:当前时间周期的最大内存使用量可以建模为过去个时间周期的最大内
存使用量的线性组合加上一个白噪声。
目的1:明确过去哪几个时间周期的历史最大内存使用量会影响当前时间周期的最大内存使用量。
组件2:
含义2:当前时间周期的最大内存使用量是过去阶白噪声的线性组合。
目的2:明确过去哪几个时间周期的白噪声会影响当前时间周期的最大内存使用
量,以及明确过去期冲击效应对当前时间周期的最大内存使用量的影响。
需理解,组件1和组件2中没有考虑内存序列的季节性,进一步,还可以基于组件1
和2额外设计引入季节性参数的组件3和组件4:
组件3:
组件4:
对于上述4个组件可以择一使用,也可以组合使用,组合使用时进行简单叠加即
可。需说明,组件1中的超参数为,组件2中的超参数为,组件3中的超参数为和,组件4
中的超参数为和。示例性的,在对4个组件进行组合使用时,目标时序模型的超参数包括、、、Q和。
超参数一般为人工设定的参数,其取值可以由工作人员通过观察计算出的序列相关性指标值,如ACF或PACF等进行设定,相应,在本步骤中可以接收工作人员基于指标计算结果设定的超参数的数值,或者,也可以根据指标计算结果采用网格搜索的方法确定。
另外,为超参数选取的参数值可能为一组,也可能为多组,示例性的,或。在为多组的情况下,为节省整体的计算量,可以从
中选取一组参数值用于后续的计算。
在一个实施例中,可以根据预定的信息准则进行超参数数值的选取。在一个例子中,其中预定的信息准则包括赤池信息准则(Akaike Information Criterion,简称AIC),AIC鼓励数据拟合的优良性但是尽量避免出现过度拟合(Overfitting)的情况,所以优先考虑的模型应是AIC值最小的那一个。
(1)
其中,表示模型的参数量,表示似然函数。
在另一个例子中,预定的信息准则包括贝叶斯信息准则 (Bayesian InformationCriterion,简称BIC),同样优先考虑BIC值最小的一组模型超参数值。
在另一个实施例中,也可以随机选取一组超参数数值。
由上,可以获取为目标时序模型中的超参数设定的参数值。从而执行步骤S406,基于超参数的参数值,利用历史内存序列优化目标函数,得到所述目标时序模型中未知参数的参数估计值,以确定训练好的目标时序模型。
需理解,上述目标函数可以根据实际需要设定,例如,设定为最小二乘误差函数,或者,设定为极大似然函数。
对于上述未知参数,示例性的,组件1中的至为未知参数。另外,组件1中的
为历史内存序列中的序列元素,可以从正态分布中随机采样而得到。
由上,可以得到超参数和未知参数的参数值均确定的目标时序模型。进一步,在一种实施方式,可以直接将当前目标时序模型作为训练好的目标时序模型。
在另一种实施方式中,还可以执行步骤S408,对当前目标时序模型进行预定检验,从而将通过检验的目标时序模型作为训练好的目标时序模型,否则返回步骤S404,重新设定超参数的参数值,例如,根据上述预定的信息准则将所述超参数重新设定为之前落选的其他组可选参数值中一组参数值,由此,再基于重新设定的超参数值顺序执行步骤S406和S408,直到训练出的目标时序模型通过预定检验。
对于上述预定检验,在一个实施例中,上述预定检验包括对参数估计值的显著性检验,旨在检验解释变量(主要指未知参数)对被解释变量(主要指预测变量)是否有显著影响。若检验结果为有显著影响,则检验通过,否则不通过。示例性的,显著性检验可以采用t统计量检验的方式。
在另一个实施例中,上述预定检验包括残差白噪声校验。需理解,一个好的目标时序模型应该能够提取历史内存序列中几乎所有的样本相关信息,即残差序列应该为白噪声序列。反之,如果残差序列为非白噪声序列,那就意味着残差序列中还残留相关信息未被提取,这就说明目标时序模型的拟合不够有效。
具体地,先利用目标时序模型对测试用内存序列进行预测,以确定预测出的序列和对应的标签序列之间的残差序列;再判断所述残差序列是否属于白噪声序列,若不属于则指示检验未通过。需理解,其中测试用内存序列和上述历史内存序列可以是根据一个总的数据集进行划分而得到,划分结果为两个互斥的子集,其中一个用于采样测试用内存序列,另一个用于采样历史内存序列。标签序列为续接在测试用内存序列之后,标签序列中的元素个数t可以根据实际需要设定,例如,设定t=5。
在一个具体的实施例中,基于长度为T的测试用内存序列,可以逐个预测第T+1个时间周期至第T+t个时间周期的内存使用量。其中,针对任意的第T+i个时间周期,将向前回溯T个时间周期所对应的T个内存使用量形成的内存序列输入目标时序模型,得到该第T+i个时间周期对应的预测内存使用量。
需理解,可以利用预测出的序列减去标签序列,从而得到对应的残差序列,另外,对于残差序列是否为白噪声序列的判断,可以采样已有的方式,如LB统计量等实现。
由上,可以实现残差白噪声检验。需说明,在进行上述预定校验时,可以对残差白噪声检验和参数的显著性检验择一单独实施,或者,也可以组合实施。对于组合实施,在一种组合实施情况中,可以先进行其中一项校验,在此项校验通过的情况下再进行另一项;在另一种组合实施情况中,可以直接同时进行两项校验。需理解,需要两项校验均通过,才判定最终结果为通过,否则只要有一项不通过则判定为不通过。
如此,可以实现对目标时序模型的预定校验。
以上结合图4,介绍利用历史内存序列训练目标时序模型的过程。回到图3,实际上,本步骤S320中训练的时序模型还可以是prophet模型、或Holt Winter模型,或者,也可以分别对目标时序模型和prophet模型等进行训练,得到多个训练好的时序模型,后续进行组合使用。
在采用图3示意的方法得到训练好的时序模型后,可以利用该时序模型实现对Java虚拟机堆外内存的高效管理。图5为本说明书实施例披露的内存管理方法的流程步骤示意图,所述方法的执行主体可以为任何具有计算、处理能力的装置、服务器或设备集群等,例如,图2中示意的时序分析预测模块。如图5所示,所述方法包括以下步骤:
步骤S510,获取通过内存管理模块采集的目标内存序列,其包括按照时间顺序排列的对应T个时间周期的T个内存使用量,其中各个内存使用量为对应时间周期内的最大内存使用量;所述最大内存使用量针对Java虚拟机的堆外内存而采集得到。
示例性的,可以从内存管理模块中获取距离当前时刻最近的T个时间周期对应的T个最大内存使用量。
步骤S520,基于所述目标内存序列,利用训练好的时序模型进行预测处理,得到未来第T+1个时间周期至第T+t个时间周期中各个时间周期内的预测内存使用量。需理解,其中t为正整数。
在一个实施例中,t=1,此时,将目标内存序列输入训练好的时序模型,可以得到第T+1个时间周期的预测内存使用量。
在另一个实施例中,t≥2,此时,可以逐个预测所述第T+1个时间周期至第T+t个时间周期的内存使用量。具体地,针对任意的第T+i个时间周期,将向前回溯T个时间周期所对应的T个内存使用量形成的内存序列输入时序模型,得到该第T+i个时间周期对应的预测内存使用量。在一个例子中,先将目标内存序列输入时序模型,得到第T+1个时间周期的预测内存使用量,再将第2至第T+1个时间周期对应的最大内存使用量或预测内存使用量输入时序模型,得到第T+2个时间周期对应的预测内存使用量,依此类推,直至得到第T+t个时间周期对应的预测内存使用量。
另一方面,在一个实施例中,将目标内存序列进行差分处理后作为时序模型的输入,此时,对于得到的模型输出,需要进行逆差分处理,从而还原得到最大内存使用量。
由上,可以得到未来t个时间周期对应的t个预测内存使用量。
步骤S530,根据所述预测内存使用量和对应的时间周期,通过所述内存管理模块提前调整内存。需理解,预测内存使用量是针对对应时间周期预测出的最大内存使用量,据此,可以提前分配好对应大小的内存,减小临时分配内存带来的时间开销。
示例性的,根据预测出的未来60个时间周期(每个周期为1min)的最大内存使用量,在对应时间周期的起始时刻,分配对应大小的堆外内存。
综上,采用本说明书实施例披露的内存管理方法,通过利用时序模型对采集的内存时间序列数据进行预测, 得到未来一段时间内的内存使用情况,来帮助内存管理模块实现动态的扩缩容,以提升堆外内存的使用效率和内存的整体利用率。达到的技术效果具体包括:1)堆外内存管理上不需要设置过多参数来控制,降低用户的使用难度。2)提升内存资源的使用率,防止出现内存过闲或者内存过于紧张的情况。3)通过模型得到未来内存使用趋势,控制堆外内存可以提前分配堆外内存,减少使用时临时分配内存带来的时间开销。
根据另一方面的实施例,申请人提出,上述内存管理方案除了可以用于堆外内存的管理外,实际还可以拓展到其他任意类型内存的管理场景,例如,堆内内存的管理等。相应,上述内存管理模块从专指堆外内存管理模块,适应性引申为对应场景下用于内存管理的功能模块,例如,在管理的是Java虚拟机的堆内内存的场景,内存管理模块可以集成在Java虚拟机中。
根据又一方面的实施例,与上述时序模型训练方法、内存管理方法相对应的,本说明书实施例还披露训练装置和管理装置。
图6为本说明书实施例披露的时序模型训练装置的功能结构示意图。如图6所示,所示装置600包括以下功能单元:
历史序列获取单元610,配置为获取通过内存管理模块采集的历史内存序列,其包括按照时间顺序排列的T个内存使用量,其中各个内存使用量为对应时间周期内的最大内存使用量。时序模型训练单元620,配置为利用所述历史内存序列训练时序模型;其中,训练好的时序模型用于预测未来时间周期内的内存使用量。
在一个实施例中,所述最大内存使用量针对Java虚拟机的堆外内存而采集得到。
在一个实施例中,时序模型训练单元620具体配置为:计算所述历史内存序列的序列相关性指标,以及,获取根据指标计算结果为所述时序模型中的超参数设定的参数值;基于所述超参数的参数值,利用所述历史内存序列优化目标函数,得到所述时序模型中未知参数的参数估计值,以确定训练好的时序模型。
进一步,在一个具体的实施例中,时序模型训练单元620还配置为:在计算所述历史内存序列的序列相关性指标之前,对所述历史内存序列进行平稳性检验;在检验结果指示所述历史内存序列不平稳的情况下,对所述历史内存序列进行差分变换处理。
在一个具体的实施例中,时序模型训练单元620具体配置为获取根据指标计算结果为所述时序模型中的超参数设定的参数值,包括:接收基于所述指标计算结果针对所述时序模型中的超参数输入的多组可选参数值;根据预定的信息准则,将所述超参数设定为所述多组可选参数值中的第一组参数值。
进一步,在一个例子中,时序模型训练单元620还配置为:对所述时序模型进行预定检验;在检验未通过的情况下,根据所述信息准则将所述超参数设定为所述多组可选参数值中的第二组参数值,并基于所述第二组参数值重新确定所述时序模型中未知参数的参数估计值。示例性的,其中预定检验包括对参数估计值的显著性检验,或者包括:利用所述时序模型对测试用内存序列进行预测,并确定预测出的序列和对应的标签序列之间的残差序列;判断所述残差序列是否属于白噪声序列,若不属于则指示检验未通过。
在一个实施例中,时序模型训练单元620具体配置为:利用所述历史内存序列分别训练多个时序模型,该多个时序模型包括prophet模型、或Holt Winter模型。
图7为本说明书实施例披露的内存管理装置的功能结构示意图。如图7所示,装置700包括:
目标序列获取单元710,配置为获取通过内存管理模块采集的目标内存序列,其包括按照时间顺序排列的对应T个时间周期的T个内存使用量,其中各个内存使用量为对应时间周期内的最大内存使用量。内存预测单元720,配置为基于所述目标内存序列,利用训练好的时序模型进行预测处理,得到未来第T+1个时间周期至第T+t个时间周期中各个时间周期内的预测内存使用量。内存调整单元730,配置为根据所述预测内存使用量和对应的时间周期,通过所述内存管理模块提前调整内存。
在一个实施例中,所述最大内存使用量针对Java虚拟机的堆外内存而采集得到。
在一个实施例中,内存预测单元720具体配置为:逐个预测所述第T+1个时间周期至第T+t个时间周期的内存使用量,其中,针对任意的第T+i个时间周期,将向前回溯T个时间周期所对应的T个内存使用量形成的内存序列输入所述时序模型,得到该第T+i个时间周期对应的预测内存使用量。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图3或图4或图5所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图3或图4或图5所描述的方法。本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (12)
1.一种时序模型的训练方法,所述方法包括:
获取通过内存管理模块采集的历史内存序列,其包括按照时间顺序排列的T个内存使用量,其中各个内存使用量为对应时间周期内的最大内存使用量;所述最大内存使用量针对Java虚拟机的堆外内存而采集得到;
利用所述历史内存序列训练时序模型;其中,训练好的时序模型用于预测未来时间周期内的内存使用量;
其中,利用所述历史内存序列训练所述时序模型,包括:计算所述历史内存序列的序列相关性指标,以及,接收基于指标计算结果针对所述时序模型中的超参数输入的多组可选参数值,并根据赤池信息准则,将所述超参数设定为所述多组可选参数值中的第一组参数值;基于所述超参数的参数值,利用所述历史内存序列优化目标函数,得到所述时序模型中未知参数的参数估计值,以确定训练好的时序模型。
2.根据权利要求1所述的方法,其中,在计算所述历史内存序列的序列相关性指标之前,所述方法还包括:
对所述历史内存序列进行平稳性检验;
在检验结果指示所述历史内存序列不平稳的情况下,对所述历史内存序列进行差分变换处理。
3.根据权利要求1所述的方法,其中,确定训练好的时序模型,包括:
对所述时序模型进行预定检验;
在检验未通过的情况下,根据所述信息准则将所述超参数设定为所述多组可选参数值中的第二组参数值,并基于所述第二组参数值重新确定所述时序模型中未知参数的参数估计值。
4.根据权利要求3所述的方法,其中,所述预定检验包括对参数估计值的显著性检验。
5.根据权利要求3所述的方法,其中,所述预定检验包括:
利用所述时序模型对测试用内存序列进行预测,并确定预测出的序列和对应的标签序列之间的残差序列;
判断所述残差序列是否属于白噪声序列,若不属于则指示检验未通过。
6.根据权利要求1所述的方法,其中,利用所述历史内存序列训练时序模型,包括:
利用所述历史内存序列分别训练多个时序模型,该多个时序模型包括prophet模型、或HoltWinter模型。
7.一种内存管理方法,包括:
获取通过内存管理模块采集的目标内存序列,其包括按照时间顺序排列的对应T个时间周期的T个内存使用量,其中各个内存使用量为对应时间周期内的最大内存使用量;所述最大内存使用量针对Java虚拟机的堆外内存而采集得到;
基于所述目标内存序列,利用训练好的时序模型进行预测处理,得到未来第T+1个时间周期至第T+t个时间周期中各个时间周期内的预测内存使用量;所述时序模型采用权利要求1所述的方法预先训练好;
根据所述预测内存使用量和对应的时间周期,通过所述内存管理模块提前调整内存。
8.根据权利要求7所述的方法,其中,基于所述内存序列,利用训练好的时序模型进行预测处理,得到未来第T+1个时间周期至第T+t个时间周期中各个时间周期内的预测内存使用量,包括:
逐个预测所述第T+1个时间周期至第T+t个时间周期的内存使用量,其中,针对任意的第T+i个时间周期,将向前回溯T个时间周期所对应的T个内存使用量形成的内存序列输入所述时序模型,得到该第T+i个时间周期对应的预测内存使用量。
9.一种时序模型的训练装置,所述装置包括:
历史序列获取单元,配置为获取通过内存管理模块采集的历史内存序列,其包括按照时间顺序排列的T个内存使用量,其中各个内存使用量为对应时间周期内的最大内存使用量;所述最大内存使用量针对Java虚拟机的堆外内存而采集得到;
时序模型训练单元,配置为利用所述历史内存序列训练时序模型;其中,训练好的时序模型用于预测未来时间周期内的内存使用量;
所述时序模型训练单元具体配置为:计算所述历史内存序列的序列相关性指标,以及,接收基于指标计算结果针对所述时序模型中的超参数输入的多组可选参数值,并根据预定的信息准则,将所述超参数设定为所述多组可选参数值中的第一组参数值;基于所述超参数的参数值,利用所述历史内存序列优化目标函数,得到所述时序模型中未知参数的参数估计值,以确定训练好的时序模型。
10.一种内存管理装置,包括:
目标序列获取单元,配置为获取通过内存管理模块采集的目标内存序列,其包括按照时间顺序排列的对应T个时间周期的T个内存使用量,其中各个内存使用量为对应时间周期内的最大内存使用量;所述最大内存使用量针对Java虚拟机的堆外内存而采集得到;
内存预测单元,配置为基于所述目标内存序列,利用训练好的时序模型进行预测处理,得到未来第T+1个时间周期至第T+t个时间周期中各个时间周期内的预测内存使用量;所述时序模型基于权利要求9所述的装置预先训练好;
内存调整单元,配置为根据所述预测内存使用量和对应的时间周期,通过所述内存管理模块提前调整内存。
11.一种计算机可读存储介质,其上存储有计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-8中任一项所述的方法。
12.一种计算设备,包括存储器和处理器,其中,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311658915.7A CN117472586B (zh) | 2023-12-05 | 2023-12-05 | 时序模型的训练方法及装置、内存管理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311658915.7A CN117472586B (zh) | 2023-12-05 | 2023-12-05 | 时序模型的训练方法及装置、内存管理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117472586A CN117472586A (zh) | 2024-01-30 |
CN117472586B true CN117472586B (zh) | 2024-03-12 |
Family
ID=89639789
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311658915.7A Active CN117472586B (zh) | 2023-12-05 | 2023-12-05 | 时序模型的训练方法及装置、内存管理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117472586B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100104118A (ko) * | 2009-03-16 | 2010-09-29 | 주식회사 비츠로시스 | 지엠디에이치 알고리즘을 이용한 물수요 예측방법 |
CN111327655A (zh) * | 2018-12-14 | 2020-06-23 | 中移(杭州)信息技术有限公司 | 多租户容器资源配额预测方法、装置及电子设备 |
CN112114963A (zh) * | 2020-09-07 | 2020-12-22 | 中国银行股份有限公司 | 服务器内存容量预测方法及装置 |
CN115632966A (zh) * | 2022-09-07 | 2023-01-20 | 深圳市德联发科技有限公司 | 基于云计算的物联网设备自动运维方法 |
CN115794369A (zh) * | 2021-11-30 | 2023-03-14 | 波克科技股份有限公司 | 内存占用数值的预测方法及装置、存储介质、终端 |
CN117056018A (zh) * | 2023-08-08 | 2023-11-14 | ***通信集团北京有限公司 | 资源调度方法、装置、设备、程序产品和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210406732A1 (en) * | 2020-06-25 | 2021-12-30 | Unisys Corporation | Method for building machine learning models for artificial intelligence based information technology operations |
-
2023
- 2023-12-05 CN CN202311658915.7A patent/CN117472586B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100104118A (ko) * | 2009-03-16 | 2010-09-29 | 주식회사 비츠로시스 | 지엠디에이치 알고리즘을 이용한 물수요 예측방법 |
CN111327655A (zh) * | 2018-12-14 | 2020-06-23 | 中移(杭州)信息技术有限公司 | 多租户容器资源配额预测方法、装置及电子设备 |
CN112114963A (zh) * | 2020-09-07 | 2020-12-22 | 中国银行股份有限公司 | 服务器内存容量预测方法及装置 |
CN115794369A (zh) * | 2021-11-30 | 2023-03-14 | 波克科技股份有限公司 | 内存占用数值的预测方法及装置、存储介质、终端 |
CN115632966A (zh) * | 2022-09-07 | 2023-01-20 | 深圳市德联发科技有限公司 | 基于云计算的物联网设备自动运维方法 |
CN117056018A (zh) * | 2023-08-08 | 2023-11-14 | ***通信集团北京有限公司 | 资源调度方法、装置、设备、程序产品和存储介质 |
Non-Patent Citations (2)
Title |
---|
可预测性CER-实时Java模型研究与应用;金永贤;李书宇;;计算机应用;20080501(05);全文 * |
基于内存优化配置的MapReduce性能调优;罗永刚;陈兴蜀;杨露;;华南理工大学学报(自然科学版);20170115(01);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117472586A (zh) | 2024-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240119271A1 (en) | Methods, systems, articles of manufacture and apparatus to map workloads | |
US10789155B2 (en) | Coverage test support device and coverage test support method | |
US20180159727A1 (en) | Systems and methods for identifying cloud configurations | |
JP5857049B2 (ja) | 単語のユーザー挙動数の予測 | |
CN111638958B (zh) | 云主机负载处理方法、装置、控制设备及存储介质 | |
CN110111885B (zh) | 属性预测方法、装置、计算机设备及计算机可读存储介质 | |
CN112598248A (zh) | 负荷预测方法、装置、计算机设备和存储介质 | |
CN111145076A (zh) | 数据并行化处理方法、***、设备及存储介质 | |
CN111291875A (zh) | 用于确定存储器大小的方法和设备 | |
CN114936085A (zh) | 基于深度学习算法的etl调度方法及装置 | |
CN110909878A (zh) | 预估资源使用份额的神经网络模型的训练方法和装置 | |
CN110796591B (zh) | 一种gpu卡的使用方法及相关设备 | |
CN109978058B (zh) | 确定图像分类的方法、装置、终端及存储介质 | |
CN117472586B (zh) | 时序模型的训练方法及装置、内存管理方法及装置 | |
CN115794369A (zh) | 内存占用数值的预测方法及装置、存储介质、终端 | |
CN112001531B (zh) | 基于有效载荷能力的风电短期运行容量可信度评估方法 | |
CN113220466A (zh) | 一种基于长短期记忆模型的云服务负载通用预测方法 | |
CN113822441B (zh) | 决策模型训练方法、装置、终端设备及存储介质 | |
CN114820755B (zh) | 一种深度图估计方法及*** | |
CN111158918A (zh) | 支撑点并行枚举负载均衡方法、装置、设备及介质 | |
JP2017224038A (ja) | キャッシュミス推定プログラム、キャッシュミス推定方法及び情報処理装置 | |
CN113723538B (zh) | 基于层次化迁移学***台功耗性能预测方法及*** | |
CN106874215B (zh) | 一种基于Spark算子的序列化存储优化方法 | |
Mohammadi et al. | Machine learning assisted stochastic unit commitment: A feasibility study | |
CN113762647A (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 |