具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture ExpertsGroup Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving PictureExperts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的页面提供支持的后台服务器。
需要说明的是,本申请实施例所提供的服务器容量调整方法由服务器执行,相应地,服务器容量调整装置设置于服务器中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器,本申请实施例中的终端设备101、102、103具体可以对应的是实际生产中的应用系统。本申请实施例中的服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
请参阅图2,图2示出本发明实施例提供的一种服务器容量调整方法,以该方法应用在图1中的服务端为例进行说明,详述如下:
S201:获取每个节点服务器在上一预设周期内的负载信息。
具体的,通过撰写自定义监控脚本获取获取自定义监控项数据,在本申请中,通过撰写自定义监控脚本生成程序配置,采集各节点服务器对应的负载信息,其中,agent自定义监控脚本可以根据实际应用场景按照预设的格式进行撰写,上一预设周期的时间单位可以根据实际应用场景进行设置,此处不作具体限定,可以为日、月、小时等,例如,上一预设周期可以为30天(如,2021年6月1日到2021年6月30日)、一个月,负载信息包括但不限于服务器的内存占用率、服务器的I/O占用率、服务器的网络占用率、服务器的应用占用率、服务器的线程数据。
S202:将负载信息输入到强化学习模型中进行峰值预测,得到每个节点服务器在下一预设周期的初步负载峰值。
具体的,强化学习模型可以为Q learning模型、Deep Q learning模型、PolicyGradients模型等,其中强化学习模型根据节点服务器的历史负载信息训练得到。
其中,以Deep Q learning模型为例进行说明,具体如下:
利用深度置信网络对上一预设周期的负载信息进行特征提取,获得输出状态表示值;
将输出状态表示值输入Q-learning模型,利用Q-learning模型获得最优预测策略,利用最优预测策略预测初步负载峰值。
在其中一个实施例中,将输出状态表示值输入Q-learning模型,利用Q-learning模型获得最优预测策略,利用最优预测策略预测初步负载峰值的步骤包括:
构建马尔可夫决策模型,并定义其中的状态、动作、状态转移函数以及立即奖赏函数,建立回报值函数模型,利用Q-learning模型获得最优预测策略,利用最优预测策略预测初步负载峰值。
其中,构建马尔可夫决策模型,并定义其中的状态、动作、状态转移函数以及立即奖赏函数具体为:
定义状态:用s表示。
具体的,通过深度置信网络对负载信息进行特征提取,获得输出状态表示值,状态表示值可以表示为s={v1,v2,v3,…,vi},其中,i为大于0的正整数,s为负载信息经过深度置信网络特征提取后的状态集合,vi为深度置信网络输出的状态表示值,其用于表示节点服务器的内存占用率、I/O占用率网络占用率、应用占用率、线程数据等状态。
定义动作:用a表示。
具体的,动作用于表示预测下一预设周期的初步负载峰值,第i个时间步预测获得的初步负载峰值用Ei+1表示,则动作ai表示为ai=Ei+1。
定义状态转移:用si->si+1表示,其中,第i次获取的状态为si,则第i+1次获取的状态表示为si={v1,v2,v3,…,vi}->si+1={v2,v3,v4,…,vi+1}。
定义立即奖赏函数:用r表示,下一预设周期的初步负载峰值用Et+1表示,下一预设周期的实际负载峰值用et+1,则两者之间的差值为E=
|Et+1-et+1|,其中,奖赏被建模为一个负值的变量,相当于预测结果的惩罚值,相应的立即奖赏函数为:r=-E,此处需要说明的是,下一预设周期的实际负载峰值是根据下一预设周期的负载数据分析获得,当获得下一预设周期的实际负载峰值时,该下一预设周期的负载信息作为新的上一预设周期的负载信息。
其中,建立回报值函数模型的具体步骤为:
建立回报值函数模型,设R(s,a)表示在状态s下采取动作a的回报值,值函数Q(s,a)是关于R(s,a)的期望,则Q(s,a)=E[R(s,a)]。
其中,利用Q-learning模型获得最优预测策略的具体步骤为:
每获取一次下一预设周期的实际负载峰值记为一次情节,每次状态转移即预测一次新的下一预设周期的初步负载峰值记为一个时间步t,重复以下步骤直到状态s收敛:
采取动作a,获得立即奖赏函数r和下一个状态s’,通过贪心策略从Q根据s’选择下一个动作a’,具体过程如式(1)。
式中,γ为折扣因子,是一个0到1的值,根据实际收敛情况而定,α为学习速率。
S203:计算初步负载峰值与初步负载峰值对应的历史平均负载峰值的差值。
具体的,历史平均负载峰值根据节点服务器的历史负载数据获得,具体为:获取历史年份N年的历史负载数据,将每一年的历史负载数据以预设周期为单位进行划分,则每年的历史负载数据被划分为M个预设周期的历史负载数据,并将每个预设周期处理成负载曲线图,从负载曲线图中提取每个预设周期的负载峰值,将N年中每年与下一预设周期为同一时间段的预设周期作为相同预设周期,对相同预设周期的负载峰值进行加权求和,得到历史平均负载峰值,其中,权重之和为1。此处,需要特别说明的是,历史年份越靠近当年年份,其所占的权重较大,历史年份与当年年份相距越远,其所占的权重越小。
示例性的,获取节点服务器对应的2018年-2020年的负载数据,假设预设周期为30天,一年为365天,下一预设周期为当年的第11个预设周期,则将每一年的历史负载数据以30为单位进行划分,每年被划分为365/30≈12个预设周期,将每个预设周期处理成负载曲线图,从负载曲线图中提取每个预设周期的负载峰值,将2018年-2020年中第11个预设周期的负载峰值进行加权求和,即对2018年的第11个预设周期、2019年的第11个预设周期和2020年的第11个预设周期的负载峰值进行加权求和,得到第11个预设周期的历史平均负载峰值。
S204:若差值大于预设阈值,则将初步负载峰值作为目标负载峰值。
具体的,目标负载峰值为节点服务器的最大负载,差距大于预设阈值,则说明初步负载峰值相对于往年的同一预设周期的负载峰值波动较大,假设预设阈值为A,差值为B,若B小于A,则将初步负载峰值作为目标负载峰值。
进一步的,若差值小于预设阈值,则将初步负载峰值对应的节点服务器作为目标服务器,根据历史经验数据对该目标服务器进行容量调整,。
在本步骤中,通过初步负载峰值与初步负载峰值对应的历史平均负载峰值的差值可知初步负载峰值与历史平均负载峰值的差距,差距小于预设阈值,则说明初步负载峰值与历史平均负载峰值相当,可直接根据历史经验数据对目标服务器进行容量调整,提高了容量调整效率。
S205:若目标负载峰值超出预设范围,则将目标负载峰值对应的节点服务器作为目标服务器。
具体的,预设范围为根据历史经验数据分析获得,预设范围包括预设第一预设阈值和预设第二阈值,其中,预设第一阈值小于预设第二阈值,若目标负载峰值大于预设第二阈值,即需要对目标负载峰值对应的节点服务器进行扩容,或目标负载峰值小于预设第一阈值,即需要对对目标负载峰值对应的节点服务器进行缩容,则将目标负载峰值对应的节点服务器作为目标服务器,若目标负载峰值落在预设范围内,则不对目标服务器的容量进行调整。
例如,预设范围为40%~70%,其中,40%为预设第一预设阈值,70%为预设第二阈值,目标负载峰值大于70%,则对目标服务器进行扩容,目标负载峰值小于40%,则对目标服务器进行缩容,目标负载峰值大于等于40%且小于等于70%,则不对目标服务器进行容量调整。
S206:对目标服务器的容量进行调整,得到容量调整后的目标服务器。
具体的,若目标负载峰值小于预设第一阈值,则对目标服务器的容量进行缩容处理,若负载峰值大于预设第二阈值,则对目标服务器的容量进行扩容处理。
可选的,对目标服务器的容量进行调整,得到容量调整后的目标服务器之后还包括:
输出目标服务器的容量调整报告。
具体的,该容量调整报告包括当不限于目标服务器在容量调整前的容量信息、目标服务器在容量调整后的容量信息、初步负载峰值信息、历史平均负载峰值信息。
在本实施例中,获取每个节点服务器在上一预设周期内的负载信息,将负载信息输入到强化学习模型中进行峰值预测,得到每个节点服务器在下一预设周期的初步负载峰值,计算初步负载峰值与初步负载峰值对应的历史平均负载峰值的差值,若差值大于预设阈值,则将初步负载峰值作为目标负载峰值,若目标负载峰值超出预设范围,则将目标负载峰值对应的节点服务器作为目标服务器,对目标服务器的容量进行调整,得到容量调整后的目标服务器,其中,通过预测下一预设周期的初步负载峰值,并将初步负载峰值与历史平均负载峰值进行比较,确定目标负载峰值,进而根据目标负载峰值和预设阈值,对目标服务器的容量进行调整,不仅提高了服务器容量调整的智能化程度,还提高了服务器容量调整的效率。
在本实施例的一些可选的实现方式中,步骤S202中,将负载信息输入到强化学习模型中进行峰值预测,得到每个节点服务器在下一预设周期的初步负载峰值包括:
将负载信息输入到强化学习模型中的预测单元中进行预测,得到第一负载峰值预测值,其中,预测单元为长短期记忆模型。
具体的,第一负载峰值预设结果为长短期记忆模型根据负载信息预测得到的下一预设周期的负载峰值。
对负载信息进行数据分析,得到负载信息对应的负载峰值。
具体的,可以通过数据分析工具,如excel,将负载信息处理成曲线图,曲线图的最高点即为负载信息实际的负载峰值。
将第一负载峰值预测值和负载峰值代入到强化学习模型中的损失函数,计算得到第一负载峰值预测值和负载峰值的差值,并将差值作为奖励函数。
具体的,损失函数Loss如公式(2):
Loss(y,y')=-(ylog(y')+(1-y)log(1-y')) (2)
式中,y为负载峰值,y'为第一负载峰值预测值。
基于梯度上升方法和奖励函数,优化强化学习模型。
具体的,梯度上升方法梯度上升法是求函数的局部最大值,在本申请中,优化强化学习模型的优化公式为argmax(Loss),其中,Loss为强化学习模型中的损失函数的结果,即奖励函数。
将负载信息和奖励函数输入到优化后的强化学习模型的决策单元中进行决策,得到决策结果,其中,决策单元为感知机模型。
具体的,强化学习模型的决策单元输出的取值为0或1,0代表本次预测结果不是最优预测策略,需要预测单元重新进行随机试错,直至决策单元输出1,1代表本次预测结果是最优预测策略,输出预测单元的第一负载峰值预测值作为初步负载峰值。
此处,对由五层感知机构成的决策单元模型进行说明,具体如下:
由五层感知机构成的决策单元模型,包括输入层、隐藏层和输出层,每一层的单元与之相邻层的所有单元连接,同一层的单元之间没有连接,其中将负载信息输入输入层中,经过隐藏层,最后由输出层输出决策,具体计算过程如下:
基于深度置信网络,对负载信息进行特征提取,得到负载信息的特征向量X=(x1,x2,...,xm),并将负载信息的特征向量输入输入层,其中,m表示负载信息的特征总数,x1,x2,...,xi表示第1、2、...m个特征对应的特征值,在本申请实施例中,m=5,x1,x2,x3,x4,x5分别表示服务器的内存占用率、服务器的I/O占用率、服务器的网络占用率、服务器的应用占用率、服务器的线程数据对应的特征值。
根据公式h1=sigmoid(W1X+b1)输出第一个隐藏层的结果,其中h1表示第一个隐藏层的输出结果,W1表示第一个隐藏层的系数矩阵,b1表示第一个隐藏层的偏置。
将h1输入到第二个隐藏层,通过公式h2=sigmoid(W2h1+b2)计算得到第二个隐藏层的结果,其中h2表示第二个隐藏层的输出结果,W2表示第二个隐藏层的系数矩阵,b2表示第二个隐藏层的偏置。
将h2和上一次经过预测单元的长短期记忆模型获得的预测结果y'i-1拼接输入到第三个隐藏层,通过公式(3)计算得到输出结果(a1,a2),其中,a1,a2分别表示取值为0和1的概率,W3表示第三个隐藏层的系数矩阵,b3表示第三个隐藏层的偏置。
根据输出的输出结果(a1,a2)得到最终的决策结果。
根据决策结果,输出第一负载峰值预测值,将第一负载峰值预测值作为初步负载峰值。
在本实施例中,通过强化学习模型能够更加准确的预测初步负载峰值,有利于对服务器容量进行准确的调整,提高了服务器容量调整的智能化程度和效率。
在本实施例的一些可选的实现方式中,步骤S206,对目标服务器的容量进行容量调整,得到容量调整后的目标服务器的步骤包括如下步骤S2060至步骤S2067:
步骤S2060、获取目标服务器的当前访问信息的数量。
具体的,在本步骤中,目标服务器可以为服务器组,包括多个节点服务器,通过对节点服务器的配置信息(如内存、CPU)等参数的调整可实现对节点服务器的容量调整。
步骤S2061、基于当前访问信息的数量和预设的容器分组方式,对目标服务器中的容器进行分组,得到第一容器组和第二容器组,其中,第二容器组的负载上限大于当前访问信息的数量。
具体的,第一容器组和第二容器组可以是物理容器也可以是虚拟容器,此处不作具体限定,预设的容器分组方式可以根据实际应用场景进行设置,例如,对目标服务的当前访问信息对应的业务内容和业务数量进行数据分析,得到分析结果,根据分析结果对目标服务器中的容器进行分组,或根据目标服务器中每个节点服务器的优先级对每个节点服务器进行分组,即把最高优先级的节点服务器分为一组,把次高优先级和更低优先级的节点服务器分为一组,此处,需要特别说明的是,目标服务器的分组结果要便于第一容器和第二容器进行交互,在本申请实施例中,该交互即为第一容器和第二容器的当前访问信息可以相互调度。
步骤S2062、将第一容器组作为第一服务器,将第二容器组作为第二服务器。
步骤S2063、基于HTTP重定向的方式,将指向第一服务器的访问信息重定向至第二服务器。
具体地,HTTP重定向是指HTTP服务器向终端返回的响应信息中,并不含有实质的信息,而是一个重定向URL,即访问该资源被重定向到该URL,基于HTTP重定向的方式将第二服务器的IP封装在第一服务器的访问信息的HTTP响应消息的Location属性中,将指向第一服务器的访问信息重定向至第二服务器。
步骤S2064、对第一服务器的容量配置信息进行容量调整,得到容量调整后的第一服务器,并重启容量调整后的第一服务器。
步骤S2065、在接收到容量调整后的第一服务器重启完成的消息时,基于HTTP重定向的方式,将指向第二服务器的访问信息重定向至容量调整后的第一服务器。
步骤S2066、对第二服务器的容量配置信息进行调整,得到容量调整后的第二服务器,并重启容量调整后的第二服务器。
步骤S2067、将容量调整后的第一服务器和容量调整后的第二服务器,作为容量调整后的目标服务器。
为了更好的理解上述步骤S2060至步骤S2064,此处对上述步骤S2060至步骤S2064作进一步的说明,具体说明如下:
示例性的,假设目标服务器有10台,先将10台目标服务器划分成两部分,此处,划分为5台第一服务器和5台第二服务器,基于重定向的方式,先将5台第一服务器的当前访问流量重定向至5台第二服务器上,对5台第一服务器的容量(即CPU、内存)进行调整,调整完成后,对5台第一服务器进行重启,再将重启后的5台第一服务器的当前访问流量重定向至5台第二服务器,并将5台第二服务器的当前访问流量重定向至重启后的5台第一服务器,进而,对5台第二服务器的容量(即CPU、内存)进行调整,得到容量调整后的5台第二服务器,对容量调整后的5台第二服务器进行重启,并将5台第二服务器的当前访问流量重定向至5台第二服务器,由此,得到10台容量调整后的目标服务器。
在本实施例中,通过先对第一服务器进行容量调整,再对第二服务器进行容量调整,保证在进行容量调整的过程中有服务器对访问信息进行处理,提高了服务器容量调整的智能化程度。
在本实施例的一些可选的实现方式中,步骤S2063、将指向第一服务器的访问信息重定向至第二服务器包括步骤S20630至步骤S20631:
步骤S20630、计算第一服务器对其当前访问信息的处理时长,作为第一服务器的信息转移延迟时间。
具体的,第一服务器的当前访问信息包括用户访问流量,计算第一服务器对其当前访问信息的处理时长为:
对第一服务器的在预设时间段内每一时刻的历史访问信息和历史访问信息对应的处理时长进行数据分析,得到历史访问信息与历史访问信息对应的处理时长的比值。
根据比值和第一服务器的当前访问信息,计算得到第一服务器对其当前访问信息的处理时长,作为第一服务器的信息转移延迟时间。
需要特别说明的是,若第一服务器为服务器集群,则计算的是该服务器集群中每台服务器对其当前访问信息的处理时长,若第一服务器为一台服务器,则计算的是该服务器对其当前访问信息的处理时长。
步骤S20631、在达到信息转移延迟时间之后,将第一服务器的访问信息转移到第二服务器。
在本实施例中,通过计算第一服务器对其当前访问信息的处理时长,得到信息转移延迟时间,并在达到信息转移延迟时间之后,再将第一服务器的访问信息转移,不仅避免在访问信息转移过程中访问信息丢失,还提高了服务器容量调整的智能化程度。
在本实施例的一些可选的实现方式中,步骤S20630、计算第一服务器对其当前访问信息的处理时长,作为第一服务器的信息转移延迟时间的步骤包括步骤a1至步骤a2:
步骤a1、获取第一服务器的当前访问信息。
步骤a2、基于时间预测模型和第一服务器的当前访问信息,得到第一服务器的当前访问信息对应的处理时长,作为信息转移延迟时间。
在本实施例的一些可选的实现方式中,步骤a2、基于时间预测模型和第一服务器的当前访问信息,得到第一服务器的当前访问信息对应的处理时长,作为信息转移延迟时间的步骤包括:
从第一服务器的当前访问信息中提取关键特征。
具体的,采用深度置信网络从当前访问信息中提取关键特征。
将关键特征输入至时间预测模型进行预测,得到第一服务器的当前访问信息对应的处理时长;其中,时间预测模型为预训练的BP神经网络模型。
具体的,BP神经网络模型包括输入层、隐层和输出层组成,隐层可以有一层或多层网络,隐层选用S型传递函数,其中,隐层根据实际应用场景设置,例如,可以为一层或多层,S型传递函数是一种数学模型,它表示联系输出变量与输入变量的微分方程的一种运算方法,在本申请实施例中,BP神经网络模型通过样本数据进行训练得到,样本数据为第一服务器每一时刻的历史访问信息和历史访问信息对应的处理时长,将样本数据进行编码处理后,输入到BP神经网络模型中进行训练,在训练过程中通过反传误差函数,不断调节模BP神经网络模型中的网络权值和阈值使反传误差函数E达到极小,则得到预训练的BP神经网络。
在本实施例中,通过时间预测模型准确的预测当前访问信息对应的处理时长,可以在第一服务器处理完其当前访问信息后,再进行访问信息转移,不仅避免在访问信息转移过程中访问信息丢失,提高了服务器容量调整的智能化程度。
在一实施例中,步骤S2065,将指向第二服务器的访问信息重定向至容量调整后的第一服务器包括:
计算第二服务器对其当前访问信息的处理时长,作为第二服务器的信息转移延迟时间。
在达到信息转移延迟时间之后,将指向第二服务器的访问信息重定向至容量调整后的第一服务器。
对本实施例的解释请参考上述步骤S20630至步骤S20631,此处不重复赘述。
在一实施例中,计算第二服务器对其当前访问信息的处理时长,作为第二服务器的信息转移延迟时间包括:
获取第二服务器的当前访问信息。
基于时间预测模型和第二服务器的当前访问信息,得到第二服务器的当前访问信息对应的处理时长,作为信息转移延迟时间。
对本实施例的解释请参考上述步骤a1至步骤a2,此处不重复赘述。
在一实施例,基于时间预测模型和第二服务器的当前访问信息,得到第二服务器的当前访问信息对应的处理时长,作为信息转移延迟时间包括:
从第二服务器的当前访问信息中提取关键特征。
将关键特征输入至时间预测模型进行预测,得到第二服务器的当前访问信息对应的处理时长;其中,时间预测模型为预训练的BP神经网络模型。
对本实施例的解释请参考上述第一服务器,此处不重复赘述。
在本实施例的一些可选的实现方式中,步骤S206,容量调整为缩容调整,对目标服务器的容量进行容量调整,得到容量调整后的目标服务器的步骤之前还包括:
获取目标服务器的当前容量信息。
具体的,当前容量信息为目标服务器的内存占用率和CPU占用率。
当当前容量信息低于预设容量下限阈值,则将目标服务器的容量调整为预设容量下限阈值。
具体的当内存占用率和CPU占用率低于预设容量下限阈值,将目标服务器的容量调整为预设容量下限阈值。
在本实施例中,在对目标服务器进行缩容调整之前,通过对目标服务器的当前容量信息和预设容量下限阈值进行比较,确定是否目标服务器进行缩容调整,提高了服务器容量调整的智能化程度。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
图3示出与上述实施例服务器容量调整方法一一对应的服务器容量调整装置的原理框图。如图3所示,该服务器容量调整装置包括获取模块30、预测模块31、计算模块32、第一判断模块33、第二判断模块34和调整模块35。各功能模块详细说明如下:
获取模块30,用于获取每个节点服务器在上一预设周期内的负载信息。
预测模块31,用于将负载信息输入到强化学习模型中进行峰值预测,得到每个节点服务器在下一预设周期的初步负载峰值。
计算模块32,用于计算初步负载峰值与初步负载峰值对应的历史平均负载峰值的差值。
第一判断模块33,用于若差值大于预设阈值,则将初步负载峰值作为目标负载峰值。
第二判断模块34,用于若目标负载峰值超出预设范围,则将目标负载峰值对应的节点服务器作为目标服务器。
调整模块35,用于对目标服务器的容量进行调整,得到容量调整后的目标服务器。
可选的,预测模块31包括预测值获取模块、数据分析模块、差值计算模块、模型优化模块、决策模块和输出模块,各功能模块的详细说明具体如下:
预测值获取模块,用于将负载信息输入到强化学习模型中的预测单元中进行预测,得到第一负载峰值预测值,其中,预测单元为LSTM模型。
数据分析模块,用于对负载信息进行数据分析,得到负载信息对应的负载峰值。
差值计算模块,用于将第一负载峰值预测值和负载峰值代入到强化学习模型中的损失函数,计算得到第一负载峰值预测值和负载峰值的差值,并将差值作为奖励函数。
模型优化模块,用于基于梯度上升方法和奖励函数,优化强化学习模型。
决策模块,用于将负载信息和奖励函数输入到优化后的强化学习模型的决策单元中进行决策,得到决策结果,其中,决策单元为感知机模型。
输出模块,用于根据决策结果,输出第一负载峰值预测值,将第一负载峰值预测值作为初步负载峰值。
可选的,调整模块35包括服务器划分模块、第一信息转移模块、第一容量调整模块、第二信息转移模块和第二容量调整模块,各功能模块的详细说明具体如下:
信息数量获取模块,用于获取目标服务器的当前访问信息的数量。
分组模块,用于基于当前访问信息的数量和预设的容器分组方式,对目标服务器中的容器进行分组,得到第一容器组和第二容器组,其中,第二容器组的负载上限大于当前访问信息的数量。
服务器获取模块,用于将第一容器组作为第一服务器,将第二容器组作为第二服务器。
第一重定向模块,用于基于HTTP重定向的方式,将指向第一服务器的访问信息重定向至第二服务器。
第一容量调整模块,用于对第一服务器的容量配置信息进行容量调整,得到容量调整后的第一服务器,并重启容量调整后的第一服务器。
第二重定向模块,用于在接收到容量调整后的第一服务器重启完成的消息时,基于HTTP重定向的方式,将指向第二服务器的访问信息重定向至容量调整后的第一服务器。
第二容量调整模块,用于对第二服务器的容量配置信息进行调整,得到容量调整后的第二服务器,并重启容量调整后的第二服务器。
第四容量调整模块,用于将容量调整后的第一服务器和容量调整后的第二服务器,作为容量调整后的目标服务器。
可选的,第一信息转移模块包括时长计算模块和第三信息转移模块,各功能模块的详细说明具体如下:
时长计算模块,用于计算第一服务器对其当前访问信息的处理时长,作为第一服务器的信息转移延迟时间。
第三信息转移模块,用于在达到信息转移延迟时间之后,将指向第一服务器的访问信息重定向至第二服务器。
可选的,时长计算模块包括信息获取模块和延迟时间获取模块,各个功能模块的详细说明具体如下:
信息获取模块,用于获取第一服务器的当前访问信息。
延迟时间获取模块,用于基于时间预测模型和当前访问信息,得到当前访问信息对应的处理时长,作为信息转移延迟时间。
可选的,延迟时间获取模块包括特征提取模块和时长预测模块,各个功能模块的详细说明具体如下:
特征提取模块,用于从当前访问信息中提取关键特征。
时长预测模块,用于将关键特征输入至时间预测模型进行预测,得到当前访问信息对应的处理时长;其中,时间预测模型为预训练的BP神经网络模型。
进一步的,服务器容量调整装置还包括当前容量信息获取模块和第三容量调整模块,各个功能模块的详细说明具体如下:
当前容量信息获取模块,用于获取目标服务器的当前容量信息。
第三容量调整模块,用于当当前容量信息低于预设容量下限阈值,则将目标服务器的容量调整为预设容量下限阈值。
关于服务器容量调整装置的具体限定可以参见上文中对于服务器容量调整方法的限定,在此不再赘述。上述服务器容量调整装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图4,图4为本实施例计算机设备基本结构框图。
所述计算机设备4包括通过系统总线相互通信连接存储器41、处理器42、网络接口43。需要指出的是,图中仅示出了具有组件连接存储器41、处理器42、网络接口43的计算机设备4,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
所述存储器41至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或D界面显示存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器41可以是所述计算机设备4的内部存储单元,例如该计算机设备4的硬盘或内存。在另一些实施例中,所述存储器41也可以是所述计算机设备4的外部存储设备,例如该计算机设备4上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器41还可以既包括所述计算机设备4的内部存储单元也包括其外部存储设备。本实施例中,所述存储器41通常用于存储安装于所述计算机设备4的操作系统和各类应用软件,例如电子文件的控制的程序代码等。此外,所述存储器41还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器42在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器42通常用于控制所述计算机设备4的总体操作。本实施例中,所述处理器42用于运行所述存储器41中存储的程序代码或者处理数据,例如运行电子文件的控制的程序代码。
所述网络接口43可包括无线网络接口或有线网络接口,该网络接口43通常用于在所述计算机设备4与其他电子设备之间建立通信连接。
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有界面显示程序,所述界面显示程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的服务器容量调整方法的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。