CN1588318A - 基于实数编码遗传算法的应用服务器实例池动态配置方法 - Google Patents
基于实数编码遗传算法的应用服务器实例池动态配置方法 Download PDFInfo
- Publication number
- CN1588318A CN1588318A CN 200410066417 CN200410066417A CN1588318A CN 1588318 A CN1588318 A CN 1588318A CN 200410066417 CN200410066417 CN 200410066417 CN 200410066417 A CN200410066417 A CN 200410066417A CN 1588318 A CN1588318 A CN 1588318A
- Authority
- CN
- China
- Prior art keywords
- chromosome
- ejb
- application server
- allocative decision
- genetic algorithm
- 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.)
- Granted
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种基于实数编码遗传算法的应用服务器实例池动态配置方法,应用服务器通过预先对客户端的对于部署单元内EJB的访问请求进行数据采集,然后通过实数编码的遗传算法求解完成初次分配,接着通过差值校正获得当前的分配方案并实施该分配方案,周期性执行上述过程,就可以根据外部客户端的分布访问量动态调整实例池的容量,实现对J2EE应用服务器实例池的自动、动态配置。本发明以部署单元内实例池的总容量为规划目标而不是单个EJB实例池容量为目标,因而提供了负载均衡的可能性,提高了资源的利用率,削减了应用服务器端造成瓶颈的可能性,从而提高了应用服务器的分布式性能。
Description
技术领域
本发明涉及一种基于实数编码遗传算法(RCGA)的应用服务器实例池动态配置方法,用于对J2EE(Java 2nd Enterprise Editon,娇娃第2企业版)应用服务器实例池进行自动、动态配置,属于J2EE应用服务器设计技术领域。
背景技术
根据J2EE技术规范,J2EE应用服务器EJB(Enterprise Java Bean,企业娇娃组件)容器对EJB进行生命周期管理时要采用实例池技术,在J2EE应用服务器中部署企业应用时要为EJB在内存中分配一定容量的实例池。当前的应用服务器主要是通过静态配置技术来实现对实例池容量的指定,即在EJB部署单元被部署前预先设定每个EJB实例池容量。比如市场上常用的BEA公司的Weblogic品牌和IBM公司的Websphere品牌的J2EE应用服务器采用的都是静态配置技术。静态配置方法在工程应用中的实施主要是采用人工估计客户端对部署单元中单个EJB的访问量,然后设定每个实例池的容量。在应用服务器运行过程中,这个容量将保持固定不变。这种方法虽然便于应用服务器实现,但它没有考虑到外部客户端访问量的动态特征,无法根据访问量的变化做出动态的调整和适应,因此容易造成服务器业务逻辑处理的瓶颈。由于静态配置技术是一种较为自然地被采用的实例池配置方法,目前并无统一的研究技术文献,只有一些使用方法的介绍散见于各个J2EE应用服务器产品的技术文档说明书中。对于J2EE应用服务器实例池动态调整技术方面,目前国内外也尚无相关的研究资料和文献。
发明内容
本发明的目的在于针对现有技术的不足,提出一种基于实数编码遗传算法的应用服务器实例池动态配置方法,使得J2EE应用服务器可以根据客户端的访问需求的变化对实例池的配置进行周期性动态地调整,从而减轻由于静态配置技术容易造成资源浪费和访问瓶颈的程度。
为实现这样的目的,本发明基于机器学习的观点提出了EJB实例池动态配置方法,应用服务器通过预先对客户端对于部署单元内EJB的访问请求进行数据采集,然后以部署单元访问拥塞度的优化函数为适应度函数,通过实数编码的遗传算法对采集的数据进行处理、完成初次分配,随后通过差值校正获得当前的分配方案并在一段时间内实施该分配方案;周期性执行上述过程,就可以根据外部客户端的分布访问量动态调整实例池的容量,实现对J2EE应用服务器实例池的动态配置。
本发明方法具体包括如下步骤:
1、数据采集
在服务器端,对来自客户端的访问请求进行数据采样,采样频率可以根据需求自行选取。设给定待动态配置的EJB部署单元中含有EJB的个数为M,可以分配的内存单元量为N。采样的数据按EJB部署单元中不同EJB的分类,形成了M个EJB上的访问请求时间序列。
2、通过实数编码的遗传算法求解完成初次分配
将上一步骤所得到的访问请求时间序列作为训练数据,采用实数编码的遗传算法(RCGA)来生成初次分配方案。首先进行染色体编码,染色体设计为M维实数向量p,p的分量(基因)的取值定义为单个EJB的实例池容量占总容量的比例,基因的取值范围限定在区间(0,1/M)内;然后随机生成若干个染色体,作为初始染色体群体;然后通过交叉算子、变异算子和选择算子对该染色体群体进行遗传运算,所得染色体群体再经过适应度函数的筛选,生成新的染色体群体,并重复上述遗传运算及筛选过程,最终计算收敛求得的染色体就是初次分配方案中所对应的分配比例。
其中,所述适应度函数是从机器学习的观点出发,以EJB部署单元内实例池的总容量为规划目标构造的一个数学优化函数,并且,为了解决约束问题,引入了惩罚函数。适应度函数
其中,j为染色体的分量下标,ΓL/N2为目标函数,
为惩罚函数;μ(i)为惩罚因子,初始值取为1,随着种群进化次数i按μ(i+1)=μ(i)+i3增加。ΓL为采样数据所造成的访问EJB部署单元的拥塞度,通过下式
求得
其中,L为采样数据时间序列的长度,t为采样数据的时间下标,j为实例池的下标,k为实例池的权重,q为采样数据值,p为染色体。
3、通过差值校正得到分配方案
针对已经求得的初次分配方案染色体,首先对染色体每个分量的值做加和处理,然后用1减去所得结果,所得的差值按分量个数均分后添加到染色体各个分量上,得到最后的分配比例。用所得的分配比例去乘以部署单元的实例池总容量,获得实例池分配方案。
4、周期性实施实例池分配方案
在服务器端对部署单元实施所得的实例池分配方案,经过设定的周期后,转步骤1进行循环处理,其中循环周期应参考应用系统的需求自己设定。这样就可以通过服务器自动化、周期性的进行实例池的动态配置。
本发明利用了机器学习的原理,提出了一种对实例池大小进行动态配置的方案,可以周期性地利用来自客户端的访问请求数据,在通过实数编码遗传算法完成初次分配和随后的差值校正之后获得分配方案,从而完成对外部客户端访问请求的动态变化做出适当的调整和动态的跟踪。本发明实现了对实例池的自动动态配置,同传统静态技术比较,本发明以部署单元内EJB实例池的总容量为规划目标而不是单个EJB实例池为目标,因而提供了负载均衡的可能性,提高了资源的利用率,削减了应用服务器端造成瓶颈的可能性,从而提高了应用服务器的分布式性能。
本发明采用的实数编码的遗传算法,具有隐含的并行处理特征,可以避免一般方法的搜索效率低下的问题,同时可以避免二进制编码遗传算法的计算量大、海明(Hamming)悬崖问题。本发明结合编码基因取值区间所设计的二次分配方法可以保证通过遗传算法所求的解落在约束范围内,避免了遗传算法所求的解越界问题,因而可以保证获得优化的分配方案,是一种快速有效获取动态分配方案的方法。
本发明的方法可用于J2EE应用服务器产品的研究开发,为EJB实例池实施动态配置。
附图说明
图1本发明实施动态分配的工作流程图。
图2本发明实施例中的实验数据的视图。
图3本发明实施例中根据当前所得采样数据所得分配方案示意图。
具体实施方式
为更好地理解本发明的技术方案,以下结合附图及具体的实施例作进一步描述。
本发明基于实数编码遗传算法的实例池动态配置方法的原理如图1所示。首先对外部客户端的访问量进行数据采集,然后通过实数编码的遗传算法RCGA求解完成初次分配,随后通过差值校正完成当前分配方案,在服务器端对部署单元实施所得的实例池分配方案,并经过指定周期时间T后,转步骤1进行循环处理,从而可以根据外部客户端的分布访问量动态调整实例池的容量,实现对J2EE应用服务器实例池的动态配置。
在本发明的一个实施例中,实验参数见表1。
表1实验参数
主要实验参数 | 参数值 |
最大实例池单元 | N=10000 |
待配置EJB实例池的个数 | M=20 |
训练数据序列长度 | L=100 |
测试数据序列长度 | L=100 |
Poisson分布参数 | λ=N/M=500 |
基因取值区间集合 | {[0,1/M]}={[0,0.05]} |
初始种群规模 | W=100 |
最大种群进化次数imax | 500 |
惩罚因子 | μ(i+1)=μ(i)+i3,μ(0)=1,i为当前进化的种群代数 |
对应用服务器实例池进行动态配置方法如下:
1、数据采集
在服务器端,对来自客户端的访问请求进行数据采样,采样频率根据需求选取。设给定待动态配置的EJB部署单元中含有EJB的个数为M,可以分配的内存单元量为N。采样的数据按EJB部署单元中不同EJB的分类,形成了M个EJB上的访问请求时间序列。这些时间序列将作为下面的训练数据集合。这里,为了使得数据更具代表性,本实施例通过泊松分布来仿真获得采样数据。根据排队论理论,不失一般性,假定在M个EJB上的等待访问的请求数序列均服从λ泊松分布。并且取λ=N/M。借此可以生成相应的M个长度为2L的时序作为实验对象。其中前半部分作为训练数据集合,后半部分作为测试数据集合。另外为了使得所得数据有实际代表性,对数据进行了加权处理,这类数据可以作为一种现实中的访问情形对不同EJB不平衡访问的一种近似。所得最后的数据序列如图2所示。
2、通过实数编码的遗传算法求解完成初次分配
将上一步骤所得到的访问请求时间序列作为训练数据,采用实数编码的遗传算法(RCGA)来生成初次分配方案。首先进行染色体编码,染色体设计为M维实数向量p,p的分量(基因)的取值定义为单个EJB的实例池容量占总容量的比例,基因的取值范围限定在区间(0,1/M)内;然后随机生成W个染色体,作为初始染色体群体;然后通过交叉算子、变异算子和选择算子对该染色体群体进行遗传运算,所得染色体群体再经过适应度函数的筛选,生成新的染色体群体,并重复上述遗传运算及筛选过程,最终计算收敛求得的染色体就是初次分配方案中所对应的分配比例。
其中,交叉算子采用简单交叉、启发式交叉和算术交叉算子的组合方式;变异算子采用边界变异、一致性变异、非一致性变异和多非一致性变异算子的组合方式;选择算子采用基于正规化几何分布的排序选择函数。适应度函数的构造如前所述,
其中,j为染色体的分量下标,ΓL/N2为目标函数,
为惩罚函数;μ(i)为惩罚因子,初始值取为1,随着种群进化次数i按μ(i+1)=μ(i)+i3增加。ΓL为采样数据所造成的访问EJB部署单元的拥塞度,通过下式
求得
其中,L为采样数据时间序列的长度,t为采样数据的时间下标,j为实例池的下标,k为实例池的权重,q为采样数据值,p为染色体。
3、通过差值校正得到分配方案
针对已经求得的初次分配方案染色体p,首先对每个分量的值做加和处理,然后用1减去所得结果,所得的差值按分量个数均分后添加到各个染色体分量上,得到最后的分配比例。用所得的分配比例去乘以部署单元的总容量,获得实例池分配方案。所得动态分配方案结果如图3所示,其中横坐标代表实例池的编号,纵坐标代表对应实例池在分配方案中所占的比例。
4、周期性实施分配方案
在服务器端对部署单元实施上述所得的实例池分配方案,经过设定的周期后,转步骤1进行循环处理,这样就可以通过服务器自动化、周期性的进行实例池的动态配置。
将实施分配方案后的效果和静态配置方案的效果进行对比,在测试数据集合上的测试结果表明,使用上述动态分配技术可以使得该部署单元拥塞度大幅度下降,在一个测试周期T内,与静态均分的配置方案相比,部署单元拥塞度降低了43.72%。
Claims (2)
1、一种基于实数编码遗传算法的应用服务器实例池动态配置方法,其特征在于包括如下步骤:
1)数据采集:在服务器端,对来自客户端的访问请求进行数据采样,设给定待动态配置的EJB部署单元中含有EJB的个数为M,可以分配的内存单元量为N,采样的数据按EJB部署单元中不同EJB的分类,形成M个EJB上的访问请求时间序列;
2)通过实数编码的遗传算法求解完成初次分配:将上一步骤所得到的访问请求时间序列作为训练数据,采用实数编码的遗传算法来生成初次分配方案,首先进行染色体编码,染色体设计为M维实数向量p,p的分量的取值定义为单个EJB的实例池容量占总容量的比例,分量的取值范围限定在区间(0,1/M)内;随机生成若干个染色体,作为初始染色体群体;然后通过交叉算子、变异算子和选择算子对该染色体群体进行遗传运算,所得染色体群体再经过适应度函数的筛选,生成新的染色体群体;重复上述遗传运算及筛选过程,最终计算收敛求得的染色体就是初次分配方案中所对应的分配比例;
3)通过差值校正得到分配方案:针对已经求得的初次分配方案染色体,首先对染色体每个分量的值做加和处理,然后用1减去所得结果,所得的差值按分量个数均分后添加到染色体各个分量上,得到最后的分配比例,用所得的分配比例去乘以部署单元的实例池总容量,获得实例池分配方案;
4)周期性实施实例池分配方案:在服务器端对部署单元实施所得的实例池分配方案,经过设定的周期后,转步骤1进行循环处理,由此通过服务器自动化、周期性地进行实例池的动态配置。
2、权利要求1的基于实数编码遗传算法的应用服务器实例池动态配置方法,其特征在于所述适应度函数
其中,j为染色体的分量下标,ΓL/N2为目标函数,
为惩罚函数;μ(i)为惩罚因子,初始值取为1,随着种群进化次数i按μ(i+1)=μ(i)+i3增加,ΓL为采样数据所造成的访问EJB部署单元的拥塞度,通过下式
求得
其中,L为采样数据时间序列的长度,t为采样数据的时间下标,j为实例池的下标,k为实例池的权重,q为采样数据值,p为染色体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200410066417 CN1256670C (zh) | 2004-09-16 | 2004-09-16 | 基于实数编码遗传算法的应用服务器实例池动态配置方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200410066417 CN1256670C (zh) | 2004-09-16 | 2004-09-16 | 基于实数编码遗传算法的应用服务器实例池动态配置方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1588318A true CN1588318A (zh) | 2005-03-02 |
CN1256670C CN1256670C (zh) | 2006-05-17 |
Family
ID=34603996
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200410066417 Expired - Fee Related CN1256670C (zh) | 2004-09-16 | 2004-09-16 | 基于实数编码遗传算法的应用服务器实例池动态配置方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1256670C (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101218550B (zh) * | 2005-06-16 | 2010-10-13 | 奥立孔美国公司 | 用于检测过程变化的方法 |
CN101582131B (zh) * | 2009-05-27 | 2011-08-10 | 清华大学 | 一种离散结构遗传优化的二维编码及解码方法 |
CN103118136A (zh) * | 2013-02-28 | 2013-05-22 | 杭州电子科技大学 | 一种基于块级别云存储负载均衡优化的方法 |
CN104158855A (zh) * | 2014-07-24 | 2014-11-19 | 浙江大学 | 基于遗传算法的移动服务组合计算卸载方法 |
CN104980496A (zh) * | 2015-05-15 | 2015-10-14 | 江苏博智软件科技有限公司 | 基于云计算负载均衡的虚拟节能调度方法 |
CN107516020A (zh) * | 2017-08-17 | 2017-12-26 | 中国科学院深圳先进技术研究院 | 序列位点重要度的确定方法、装置、设备及存储介质 |
CN110096339A (zh) * | 2019-05-10 | 2019-08-06 | 重庆八戒电子商务有限公司 | 一种基于系统负载实现的扩缩容配置推荐系统及方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101515338B (zh) * | 2009-03-06 | 2011-08-17 | 山东大学 | 基于全局信息的人工鱼群算法 |
-
2004
- 2004-09-16 CN CN 200410066417 patent/CN1256670C/zh not_active Expired - Fee Related
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101218550B (zh) * | 2005-06-16 | 2010-10-13 | 奥立孔美国公司 | 用于检测过程变化的方法 |
CN101582131B (zh) * | 2009-05-27 | 2011-08-10 | 清华大学 | 一种离散结构遗传优化的二维编码及解码方法 |
CN103118136A (zh) * | 2013-02-28 | 2013-05-22 | 杭州电子科技大学 | 一种基于块级别云存储负载均衡优化的方法 |
CN103118136B (zh) * | 2013-02-28 | 2015-08-12 | 杭州电子科技大学 | 一种基于块级别云存储负载均衡优化的方法 |
CN104158855A (zh) * | 2014-07-24 | 2014-11-19 | 浙江大学 | 基于遗传算法的移动服务组合计算卸载方法 |
CN104158855B (zh) * | 2014-07-24 | 2018-01-02 | 浙江大学 | 基于遗传算法的移动服务组合计算卸载方法 |
CN104980496A (zh) * | 2015-05-15 | 2015-10-14 | 江苏博智软件科技有限公司 | 基于云计算负载均衡的虚拟节能调度方法 |
CN107516020A (zh) * | 2017-08-17 | 2017-12-26 | 中国科学院深圳先进技术研究院 | 序列位点重要度的确定方法、装置、设备及存储介质 |
CN107516020B (zh) * | 2017-08-17 | 2021-05-14 | 中国科学院深圳先进技术研究院 | 序列位点重要度的确定方法、装置、设备及存储介质 |
CN110096339A (zh) * | 2019-05-10 | 2019-08-06 | 重庆八戒电子商务有限公司 | 一种基于系统负载实现的扩缩容配置推荐系统及方法 |
CN110096339B (zh) * | 2019-05-10 | 2020-08-04 | 重庆八戒电子商务有限公司 | 一种基于系统负载实现的扩缩容配置推荐系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1256670C (zh) | 2006-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2212806B1 (en) | Allocation of resources for concurrent query execution via adaptive segmentation | |
Peng et al. | Population-based algorithm portfolios for numerical optimization | |
CN102043675B (zh) | 一种基于任务处理请求任务量大小的线程池管理方法 | |
CN110389820B (zh) | 一种基于v-TGRU模型进行资源预测的私有云任务调度方法 | |
CN102681902A (zh) | 一种基于多核系统任务分配的负载均衡方法 | |
CN102624865B (zh) | 集群负载预测方法及分布式集群管理系统 | |
CN110135635B (zh) | 一种区域电力饱和负荷预测方法及系统 | |
CN106599052B (zh) | 一种基于Apache Kylin的数据查询系统及其方法 | |
CN1256670C (zh) | 基于实数编码遗传算法的应用服务器实例池动态配置方法 | |
CN112256402B (zh) | 一种云平台数据中心资源预测与调度方法及系统 | |
CN114253735B (zh) | 一种任务处理方法、装置及相关设备 | |
CN107357652A (zh) | 一种基于分段排序及标准差调整因子的云计算任务调度方法 | |
CN108427602B (zh) | 一种分布式计算任务的协同调度方法及装置 | |
CN106371924A (zh) | 一种最小化MapReduce集群能耗的任务调度方法 | |
CN104679590A (zh) | 分布式计算系统中的Map优化方法及装置 | |
CN112330077A (zh) | 电力负荷预测方法、装置、计算机设备和存储介质 | |
CN116974768A (zh) | 一种基于深度学习的算力调度方法 | |
CN108512817A (zh) | 多视频转码调度方法及装置 | |
CN110287008B (zh) | 一种测试任务调度方法、装置及电子设备 | |
CN112632615B (zh) | 基于混合云环境的科学工作流数据布局方法 | |
CN116054156A (zh) | 一种智能电网短期负荷预测方法、系统及存储介质 | |
Chen et al. | Model and algorithm for human resource-constrained R&D program scheduling optimization | |
CN116126901A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN115599522A (zh) | 一种云计算平台任务调度方法、装置和设备 | |
Dai et al. | Improved greedy strategy for cloud computing resources scheduling |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C19 | Lapse of patent right due to non-payment of the annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |