【技术实现步骤摘要】
一种基于深度强化学习的多租户数据库资源规划与调度方法
[0001]本专利技术涉及多租户数据库资源管理
,更具体地,涉及一种基于深度强化学习的多租户数据库资源利用优化方法。
技术介绍
[0002]云服务提供商主要通过在租户间共享人力、硬件、软件等资源来降低成本、获取更高的收益。多租户数据库作为云计算的具体应用,其提供者也需要考虑在诸多租户间高效地共享资源。而多个租户共享集群中的CPU、内存、网络带宽等资源,就不可避免地存在资源竞争关系。不合理的资源共享会导致数据库性能损耗。在资源共享不合理时,真实生产环境中集群性能最坏会降低近十倍。
[0003]为应对上述问题,分布式集群都提供了资源的规划与调度机制,但是它们资源管理的粒度基本都是实体机、虚拟机或者Docker,并不关注某一类特定软件系统的特性。多租户数据库作为当下最重要的软件系统之一,一般用于处理来自不同租户间的在线处理任务。其内部多个租户、多种任务会导致资源竞争。这就要求必须根据其特性提供一套灵活的资源规划与调度机制来保障在共享资源的同时提升多租户数据库的性能。如何在遵守用户服务水平协议SLA(SERVICE LEVEL AGREEMENT,服务级别协议)的同时根据负载自适应规划调度资源对于数据库来说是一件极具挑战性的工作。
技术实现思路
[0004]要解决的技术问题
[0005]为了克服上述现有技术所述的资源管理粒度大、资源调度不灵活的缺陷,本专利技术提供一种基于深度强化学习的多租户数据库资源规划与调度方法。
[000 ...
【技术保护点】
【技术特征摘要】 【专利技术属性】
1.一种基于深度强化学习的多租户数据库资源规划与调度方法,其特征在于步骤如下:S1:通过定期收集各个租户的资源利用率指标:多租户数据库进程及子进程或线程的CPU利用率、每一租户上n条SQL语句的执行情况,来监视每个租户的资源性能。对上述所有租户的资源利用率指标进行预处理,将完成预处理的原始负载数据组装为输入状态s;S2:利用预处理过的状态s作为LSTM模型输入,对每个租户负载的未来值进行预测;将预测值作为与设定的阈值相比较,如果超出阈值,将其定义为异常事件,将触发S3;S3:构建用于确定调度策略的深度Q网络模型,将输入状态s输入深度Q网络模型中,深度Q网络模型选取使深度Q网络模型最优的动作a,或以一定概率随机选取动作a,执行一次资源调度并进入下一状态s
′
;S4:通过奖励函数对所选取的动作a进行评估,得到奖励r;S5:将输入状态s、动作a、奖励r、下一状态s
′
组成四元组并作为训练样本放入缓存中;S6:当达到预设的训练间隔时,从缓存中采样若干个训练样本并输入深度Q网络模型中进行训练,更新深度Q网络模型的参数;S7:当深度Q网络模型经过多轮训练后,将完成参数更新的深度Q网络模型应用于确定调度策略。2.根据权利要求1所述的基于深度强化学习的多租户数据库资源规划与调度方法,其特征在于:S1步骤中,对原始负载数据进行预处理包括等距分箱处理操作;其具体步骤如下:假设第k个周期对负载进行采样,n个租户的原始负载数据为假设第k个周期对负载进行采样,n个租户的原始负载数据为对负载进行分箱预处理,设置分箱个数为B,对应的边界值b
i
的取值范围为{b
i
|0≤i≤B,i∈N},通过划分边界值将负载数据进行编码;则对原始负载数据进行分箱处理操作的表达公式如下:其中,I函数为指示函数;表示租户τ的负载对应编码值,k表示第k个周期对负载进行采样;表示租户τ的负载采样所得值;该公式表示当用户τ负载数据的数值落入到第i个分箱区间时,对该用户租户负载编码为i;输入状态s中包括租户信息An、租户负载dn;其中,租户信息An中包括第n个租户ID、所属控制组、预定资源容量、当前延迟时间、当前租户服务级别协议SLA、吞吐率,租户负载dn表示所有租户n分箱处理后的负载编码。3.根据权利要求1所述的基于深度强化学习的多租户数据库资源规划与调度方法,其特征在于:S3步骤中,将输入状态s输入所述深度Q网络模型后,所述深度Q网络模型根据输入状态s计算每个动作a对应的Q值,并判断当前动作a是否使所述深度Q网络模型最优;Q值的计算公式如下:Q(s
t
,a
t
,θ)=Q
′
(s
t
,a
t
,θ)+α[r(s
t
,a
t
)+δmax
a
′
Q(s
t+1
,a
′
,θ)
‑
Q(s
t
,a
t
,θ)]其中,假设在决策时刻t,状态为s
t
,选择执行动作a
t
,并拥有奖励r{s
t
,a
t
);Q
′
表示更新前的值;r(s
t
,a
技术研发人员:刘海龙,王硕,侯舒峰,徐海洋,陈先,王磊,孙纪元,
申请(专利权)人:西北工业大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。