CN116185584A - 一种基于深度强化学习的多租户数据库资源规划与调度方法 - Google Patents

一种基于深度强化学习的多租户数据库资源规划与调度方法 Download PDF

Info

Publication number
CN116185584A
CN116185584A CN202310024259.9A CN202310024259A CN116185584A CN 116185584 A CN116185584 A CN 116185584A CN 202310024259 A CN202310024259 A CN 202310024259A CN 116185584 A CN116185584 A CN 116185584A
Authority
CN
China
Prior art keywords
tenant
action
network model
resource
depth
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
Application number
CN202310024259.9A
Other languages
English (en)
Inventor
刘海龙
王硕
侯舒峰
徐海洋
陈先
王磊
孙纪元
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Northwestern Polytechnical University
Original Assignee
Northwestern Polytechnical University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Northwestern Polytechnical University filed Critical Northwestern Polytechnical University
Priority to CN202310024259.9A priority Critical patent/CN116185584A/zh
Publication of CN116185584A publication Critical patent/CN116185584A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明涉及一种基于深度强化学习的多租户数据库资源规划与调度方法,包括:对原始负载数据进行处理得到输入状态;将输入状态作为与预设的阈值相比较,对当前状态进行异常感知;构建用于确定调度策略的深度Q网络模型,将输入状态输入深度Q网络模型中,选取模型最优的动作a,得到下一状态。利用奖励函数对所选动作a进行评估,得到奖励r;将输入状态,动作a,奖励r,下一状态放入训练样本缓存中;从缓存中采样训练样本并输入在线Q网络模型中进行训练,更新模型的参数;当Q网络经过训练后,将完成参数更新的参数θ′用于更新目标Q网络的参数θ,并将所述目标Q网络应用于确定调度策略。本发明方法有效提高多租户数据库的资源利用率。

Description

一种基于深度强化学习的多租户数据库资源规划与调度方法
技术领域
本发明涉及多租户数据库资源管理技术领域,更具体地,涉及一种基于深度强化学习的多租户数据库资源利用优化方法。
背景技术
云服务提供商主要通过在租户间共享人力、硬件、软件等资源来降低成本、获取更高的收益。多租户数据库作为云计算的具体应用,其提供者也需要考虑在诸多租户间高效地共享资源。而多个租户共享集群中的CPU、内存、网络带宽等资源,就不可避免地存在资源竞争关系。不合理的资源共享会导致数据库性能损耗。在资源共享不合理时,真实生产环境中集群性能最坏会降低近十倍。
为应对上述问题,分布式集群都提供了资源的规划与调度机制,但是它们资源管理的粒度基本都是实体机、虚拟机或者Docker,并不关注某一类特定软件系统的特性。多租户数据库作为当下最重要的软件系统之一,一般用于处理来自不同租户间的在线处理任务。其内部多个租户、多种任务会导致资源竞争。这就要求必须根据其特性提供一套灵活的资源规划与调度机制来保障在共享资源的同时提升多租户数据库的性能。如何在遵守用户服务水平协议SLA(SERVICE LEVEL AGREEMENT,服务级别协议)的同时根据负载自适应规划调度资源对于数据库来说是一件极具挑战性的工作。
发明内容
要解决的技术问题
为了克服上述现有技术所述的资源管理粒度大、资源调度不灵活的缺陷,本发明提供一种基于深度强化学习的多租户数据库资源规划与调度方法。
技术方案
一种基于深度强化学习的多租户数据库资源规划与调度方法,其特征在于步骤如下:
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网络模型应用于确定调度策略。
本发明进一步的技术方案:S1步骤中,对原始负载数据进行预处理包括等距分箱处理操作;其具体步骤如下:
假设第k个周期对负载进行采样,n个租户的原始负载数据为
Figure BDA0004043903200000021
Figure BDA0004043903200000022
对负载进行分箱预处理,设置分箱个数为B,对应的边界值bi的取值范围为{bi|0≤i≤B,i∈N},通过划分边界值将负载数据进行编码;
则对原始负载数据进行分箱处理操作的表达公式如下:
Figure BDA0004043903200000031
其中,I函数为指示函数;
Figure BDA0004043903200000032
表示租户τ的负载对应编码值,k表示第k个周期对负载进行采样;/>
Figure BDA0004043903200000033
表示租户τ的负载采样所得值;该公式表示当用户τ负载数据/>
Figure BDA0004043903200000034
的数值落入到第i个分箱区间时,对该用户租户负载编码/>
Figure BDA0004043903200000035
为i;
输入状态s中包括租户信息An、租户负载dn;其中,租户信息An中包括第n个租户ID、所属控制组、预定资源容量、当前延迟时间、当前租户服务级别协议SLA、吞吐率,租户负载dn表示所有租户n分箱处理后的负载编码。
本发明进一步的技术方案:S3步骤中,将输入状态s输入所述深度Q网络模型后,所述深度Q网络模型根据输入状态s计算每个动作a对应的Q值,并判断当前动作a是否使所述深度Q网络模型最优;Q值的计算公式如下:
Q(st,at,θ)=Q′(st,at,θ)+α[r(st,at)+δmaxa′Q(st+1,a′,θ)-Q(st,at,θ)]
其中,假设在决策时刻t,状态为st,选择执行动作at,并拥有奖励r(st,at);Q′表示更新前的值;r(st,at)表示在st状态下执行动作at的奖励;α∈(0,1]表示学习率;a′表示在下一状态st+1所执行的动作;maxa′Q(st+1,a′,θ)则表示st+1状态下执行动作的得到的最大价值;δ∈[0,1]表示未来奖励的折扣因子,其中θ表示深度Q网络模型的参数。
本发明进一步的技术方案:S4步骤中,通过奖励函数对状态st下所选取的动作at进行评估,其中奖励r的计算公式如下:
Figure BDA0004043903200000036
其中,r(st,at)表示在st状态下执行动作at的奖励;Rrt(rt)表示根据服务质量QoS得到的奖励;其表达公式如下:
Figure BDA0004043903200000041
其中,rt表示时间区间t到t+1期间的平均响应时间,RTmax和RTmin分别为可接受的最大时延和最小时延;
Rut(d)表示根据资源利用率得到的奖励;其表达公式如下:
Figure BDA0004043903200000042
其中,dmax为总资源的最大可接受利用率,dj为租户j的资源利用率。
本发明进一步的技术方案:还包括以下步骤:
将完成参数更新的深度Q网络模型部署在多租户数据库外作为调度策略接口提供服务,并在数据库中部署环境监测模块和资源伸缩模块;所述环境监测模块使用Linux的top语句和创建查询数据库SQL语句执行时间视图的方法来采集cpu利用率,SQL延迟原始负载数据,所述资源伸缩模块采用cgroup提供的方法及参数对资源池占用资源进行更改。
本发明进一步的技术方案:所述环境监测模块所执行的步骤包括:
(1)对每个数据库租户创建查询该用户的SQL语句执行情况的视图,该视图包含对应用户最新执行的n条SQL语句的情况;
(2)利用top语句查询多租户数据库进程及子进程或线程的资源使用情况;
(3)调用上述视图和top指令并用awk工具采集出原始负载数据,用来预处理。
本发明进一步的技术方案:所述资源伸缩模块所执行的步骤包括:
(1)根据深度Q网络得到执行动作a;
(2)根据个租户当前的shares和--cpu-qupta以及执行动作a得出各个租户执行动作后的各参数值;
(3)利用cgroup-u指令指定租户,参数和要更新的参数值对实现对各个租户资源的重新分配。
一种计算机系统,其特征在于包括:一个或多个处理器,计算机可读存储介质,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1所述的方法。
一种计算机可读存储介质,其特征在于存储有计算机可执行指令,所述指令在被执行时用于实现权利要求1所述的方法。
有益效果
本发明提供的一种基于深度强化学习的多租户数据库资源规划与调度方法,与现有技术相比,其有益效果是:本发明采用深度Q网络模型作为调度策略模型,用于对确定调度策略;对输入深度Q网络模型的数据进行预处理,减少原始负载数据的存储所需空间并且降低后续强化学习模型的输入维度;结合异常感知模型对环境进行异常感知,及时触发调度策略模型;利用奖励函数对深度Q网络模型输出的动作进行评估,并以提高租户服务质量以及降低资源浪费为目标对深度Q网络模型进行训练,有效提高多租户数据库的资源利用率。
附图说明
附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。
图1为本发明的基于深度强化学习的云多租数据库资源调度方法的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。此外,下面描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本实施例提出一种基于深度强化学习的多租户数据库资源调度方法,如图1所示,为本实施例的基于深度强化学习的多租户数据库资源调度方法的流程图。包括:对原始负载数据进行数据处理,将完成预处理的数据进行编码得到输入状态s;将输入状态s作为与预设的阈值相比较,对当前状态进行异常感知;构建用于确定调度策略的深度Q网络模型,将输入状态s输入深度Q网络模型中,选取使深度Q网络模型最优的动作a,或以一定概率随机选取动作a;执行所选动作,完成一次资源调度,得到下一状态s’。利用奖励函数对所选动作a进行评估,得到奖励r;将输入状态s,动作a,奖励r,下一状态s’组成四元组放入训练样本缓存中;当达到预设的训练间隔时,从缓存中采样x个训练样本并输入在线Q网络模型中进行训练,更新在线Q网络模型的参数;当在线Q网络经过E轮训练后,将完成参数更新的参数θ′用于更新目标Q网络的参数θ,并将所述目标Q网络应用于确定调度策略。
本实施例提出的基于深度强化学习的云多租数据库资源调度方法中,其具体包括以下步骤:
S1:通过定期收集各个租户的资源利用率指标:多租户数据库进程及子进程或线程的CPU利用率、每一租户上n(500)条SQL语句的执行情况,来监视每个租户的资源性能。对上述所有租户的资源利用率指标进行预处理,将完成预处理的原始负载数据组装为输入状态s;
本实施例中,对各租户原始负载数据进行预处理包括分箱处理操作,能够减少原始负载数据的存储所需空间并且降低后续强化学习模型的输入维度。其具体步骤如下:
假设第k个周期对负载进行采样,n个租户的原始负载数据为lk
Figure BDA0004043903200000061
设置分箱个数为B,对应的边界值bi的取值范围为{bi|0≤i≤B,i∈N};
则对原始负载数据进行分箱处理操作的表达公式如下:
Figure BDA0004043903200000071
其中,I函数为指示函数;dk表示所有租户负载,当用户τ负载数据
Figure BDA0004043903200000073
的数值落入到第i个分箱区间时,该用户租户负载/>
Figure BDA0004043903200000072
的数值为i。
输入状态s中包括租户信息An、租户负载dn。其中,租户信息An中包括第n个租户ID、所属控制组、预定资源容量、当前延迟时间,当前租户SLA(SERVICE LEVEL AGREEMENT,服务级别协议),吞吐率,租户负载dn表示所有租户n分箱处理后的负载编码。
S2:利用预处理过的状态s作为LSTM模型输入,对每个租户负载的未来值进行预测。然后,将预测值作为与提前设定的阈值相比较,以判断当前各个租户资源使用状态是否与之前的各个租户资源使用状态超出预设阈值。如果超出阈值,将其定义为异常事件,将触发S3。
本实施例中,异常事件被定义为多租户数据库性能指标值的持续和不寻常的变化,这会影响机器在可接受时间内处理用户请求的能力。这样的条件包括性能处于正常状态,但资源未被充分利用的情况。尽管在正常情况下不会触发异常,但我们希望通过资源调度使其转向利用率更高的状态。
S3:构建用于确定调度策略的深度Q网络模型,将输入状态s输入深度Q网络模型中,深度Q网络模型选取使深度Q网络模型最优的动作a,或以一定概率(预先给定,在网络更新中不断自动优化)随机选取动作a,执行一次资源调度并进入下一状态s′;
本实施例中,采用Google DeepMind团队提出的DQN网络模型,使用神经网络代替强化学习中的值函数。在强化学习模型中,本实施例中的深度Q网络模型作为智能体与环境进行交互,根据对环境的观测,智能体会采取相应的决策,并执行相应动作。其中,深度Q网络模型包括目标Q网络和在线Q网络,其参数分别表示为θ和θ′。
在本步骤中,将输入状态s输入在线Q网络中,在线Q网络选取使所述深度Q网络模型最优的动作a,或以一定概率随机选取动作a,执行一次资源调度。其中,每个动作a代表各个租户对应cgroup资源池的shares和--cpu-qupta参数;此处在线Q网络所选取的动作a代表智能体预测出的各租户的实际分配资源。
此外,本实施例中,将输入状态s输入所述深度Q网络模型后,所述深度Q网络模型根据输入状态s计算每个动作a对应的Q值,并判断当前动作a是否使所述深度Q网络模型最优;Q值的计算公式如下:
Q(st,at,θ)=Q′(st,at,θ)+α[r(st,at)+δmaxa′Q(st+1,a′,θ)-Q(st,at,θ)]
其中,假设在决策时刻t,状态为st,选择执行动作at,并拥有奖励r(st,at);Q′表示更新前的值;r(st,at)表示在st状态下执行动作at的奖励;α∈(0,1]表示学习率;a′表示在下一状态st+1所执行的动作;maxa′Q(st+1,a′,θ)则表示st+1状态下执行动作的得到的最大价值;δ∈[0,1]表示未来奖励的折扣因子,其中θ表示深度Q网络模型的参数。
所述S6步骤中,当达到预设的训练间隔时,从所述缓存中采样x个训练样本并输入所述在线Q网络中进行训练并更新其参数θ′;
所述S7步骤中,当所述在线Q网络经过E轮训练后,将完成参数更新的参数θ′用于更新目标Q网络的参数θ,并将所述目标Q网络应用于确定调度策略。
S4:通过奖励函数对所选取的动作a进行评估,得到奖励r;
本步骤中,通过奖励函数对状态st下所选取的动作at进行评估,其中奖励r的计算公式如下:
Figure BDA0004043903200000081
其中,r(st,at)表示在st状态下执行动作at的奖励;Rrt(rt)表示根据服务质量QoS得到的奖励,若租户时延大于可接受的最大时延,奖励会降低;若租户时延小于可接受的最小时延,则奖励也会降低;其表达公式如下:
Figure BDA0004043903200000091
其中,rt表示时间区间t到t+1期间的平均响应时间,RTmax和RTmin分别为可接受的最大时延和最小时延。
Rut(d)表示根据资源利用率得到的奖励,若资源利用率超过最大可利用率,会影响5租户使用体验;若资源利用率小于最大可利用率,则会降低收益;其表达公式如下:
Figure BDA0004043903200000092
其中,dmax为总资源的最大可接受利用率,dj为租户j的资源利用率。
S5:将输入状态s、动作a、奖励r、下一状态s′组成四元组并作为训练样本放入
缓存中;
S6:当达到预设的训练间隔时,从缓存中采样x个训练样本并输入深度Q网络模型中进行训练,更新深度Q网络模型的参数;其中x为正整数;
本步骤中,所述深度Q网络模型中进行训练的过程中采用梯度下降算法对(y-Q(s,a,θ′))2中的参数θ′进行更新;其中,y的表达公式如下:
y=r(s,a)+δmaxa′Q(s′,a′,θ)
式中,y表示当前目标Q值,a′表示下一状态s'下执行的动作,δ∈[0,1]表示未来奖励的折扣因子,maxa′Q(s′,a′,θ)则表示s′状态下执行动作的得到的最大价值。
S7:当深度Q网络模型经过E轮训练后,将完成参数更新的深度Q网络模型应用于确定调度策略。
进一步地,将完成参数更新的深度Q网络模型部署在多租户数据库外作为调度策略接口提供服务,并在数据库中部署环境监测模块和资源伸缩模块;所述环境监测模块使用Linux的top语句和创建查询数据库SQL语句执行时间视图的方法来采集cpu利用率,延迟等原始负载数据,所述资源伸缩模块采用cgroup提供的方法及参数对资源池占用资源进行更改。
其中,环境监测模块所执行的步骤包括:
(1)对每个数据库租户创建查询该用户的SQL语句执行情况的视图,该视图包含对应用户最新执行的n条SQL语句的情况;
(2)利用top语句查询多租户数据库进程及子进程(或线程)的资源使用情况。
(3)调用上述视图和top指令并用awk工具采集出原始负载数据,用来预处理。
其中,资源伸缩模块所执行的步骤包括:
(1)根据深度Q网络得到执行动作a;
(2)根据各个租户当前的shares和--cpu-qupta等参数以及执行动作a得出个租户执行动作后的各参数值;
(3)利用cgroup-u指令指定租户,参数和要更新的参数值对实现对各个租户资源的重新分配。
本实施例使用opengauss作为多租户数据库平台的管理方案,并针对opengauss内置的静态调度机制导致的集群资源利用率的问题,同时为了尽可能保证多租户服务质量的情况下,提高云多租数据库的资源利用率,提出了上述基于深度强化学习的云多租数据库资源调度方法。
本实施例充分考虑到了不同业务对服务的可用性、质量等的要求,提出的基于修改各租户可用资源容量的资源调度对处于任何数据库都具有透明性,能在满足多租户服务质量求的前提下对数据库资源进行合理调度。本实施例提出了用于确定资源调度的深度强化学习模型、奖励函数以及环境监测模块和资源伸缩模块等技术方案,具体的,本实施例基于深度强化学习,以云多租数据库各租户的状态(信息、当前负载状态)作为网络输入,以保证多租户的服务质量以及降低资源浪费为目标,训练资源调度策略模型(深度Q网络模型),从而实现有效提高云多租数据库的资源利用率。
相同或相似的标号对应相同或相似的部件;
附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制;
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

Claims (9)

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个租户的原始负载数据为
Figure FDA0004043903190000011
Figure FDA0004043903190000021
对负载进行分箱预处理,设置分箱个数为B,对应的边界值bi的取值范围为{bi|0≤i≤B,i∈N},通过划分边界值将负载数据进行编码;
则对原始负载数据进行分箱处理操作的表达公式如下:
Figure FDA0004043903190000022
其中,I函数为指示函数;
Figure FDA0004043903190000023
表示租户τ的负载对应编码值,k表示第k个周期对负载进行采样;/>
Figure FDA0004043903190000024
表示租户τ的负载采样所得值;该公式表示当用户τ负载数据/>
Figure FDA0004043903190000025
的数值落入到第i个分箱区间时,对该用户租户负载编码/>
Figure FDA0004043903190000026
为i;
输入状态s中包括租户信息An、租户负载dn;其中,租户信息An中包括第n个租户ID、所属控制组、预定资源容量、当前延迟时间、当前租户服务级别协议SLA、吞吐率,租户负载dn表示所有租户n分箱处理后的负载编码。
3.根据权利要求1所述的基于深度强化学习的多租户数据库资源规划与调度方法,其特征在于:S3步骤中,将输入状态s输入所述深度Q网络模型后,所述深度Q网络模型根据输入状态s计算每个动作a对应的Q值,并判断当前动作a是否使所述深度Q网络模型最优;Q值的计算公式如下:
Q(st,at,θ)=Q′(st,at,θ)+α[r(st,at)+δmaxa′Q(st+1,a′,θ)-Q(st,at,θ)]
其中,假设在决策时刻t,状态为st,选择执行动作at,并拥有奖励r{st,at);Q′表示更新前的值;r(st,at)表示在st状态下执行动作at的奖励;α∈(0,1]表示学习率;a′表示在下一状态st+1所执行的动作;maxa′Q(st+1,a′,θ)则表示st+1状态下执行动作的得到的最大价值;δ∈[0,1]表示未来奖励的折扣因子,其中θ表示深度Q网络模型的参数。
4.根据权利要求1所述的基于深度强化学习的多租户数据库资源规划与调度方法,其特征在于:S4步骤中,通过奖励函数对状态st下所选取的动作at进行评估,其中奖励r的计算公式如下:
Figure FDA0004043903190000027
其中,r(st,at)表示在st状态下执行动作at的奖励;Rrt(rt)表示根据服务质量QoS得到的奖励;其表达公式如下:
Figure FDA0004043903190000031
其中,rt表示时间区间t到t+1期间的平均响应时间,RTmax和RTmin分别为可接受的最大时延和最小时延;
Rut(d)表示根据资源利用率得到的奖励;其表达公式如下:
Figure FDA0004043903190000032
其中,dmax为总资源的最大可接受利用率,dj为租户j的资源利用率。
5.根据权利要求1-4任一项所述的基于深度强化学习的多租户数据库资源规划与调度方法,其特征在于:还包括以下步骤:
将完成参数更新的深度Q网络模型部署在多租户数据库外作为调度策略接口提供服务,并在数据库中部署环境监测模块和资源伸缩模块;所述环境监测模块使用Linux的top语句和创建查询数据库SQL语句执行时间视图的方法来采集cpu利用率,SQL延迟原始负载数据,所述资源伸缩模块采用cgroup提供的方法及参数对资源池占用资源进行更改。
6.根据权利要求5所述的基于深度强化学习的多租户数据库资源规划与调度方法,其特征在于:所述环境监测模块所执行的步骤包括:
(1)对每个数据库租户创建查询该用户的SQL语句执行情况的视图,该视图包含对应用户最新执行的n条SQL语句的情况;
(2)利用top语句查询多租户数据库进程及子进程或线程的资源使用情况;
(3)调用上述视图和top指令并用awk工具采集出原始负载数据,用来预处理。
7.根据权利要求5所述的基于深度强化学习的多租户数据库资源规划与调度方法,其特征在于:所述资源伸缩模块所执行的步骤包括:
(1)根据深度Q网络得到执行动作a;
(2)根据个租户当前的shares和--cpu-qupta以及执行动作a得出各个租户执行动作后的各参数值;
(3)利用cgroup-u指令指定租户,参数和要更新的参数值对实现对各个租户资源的重新分配。
8.一种计算机系统,其特征在于包括:一个或多个处理器,计算机可读存储介质,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1所述的方法。
9.一种计算机可读存储介质,其特征在于存储有计算机可执行指令,所述指令在被执行时用于实现权利要求1所述的方法。
CN202310024259.9A 2023-01-09 2023-01-09 一种基于深度强化学习的多租户数据库资源规划与调度方法 Pending CN116185584A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310024259.9A CN116185584A (zh) 2023-01-09 2023-01-09 一种基于深度强化学习的多租户数据库资源规划与调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310024259.9A CN116185584A (zh) 2023-01-09 2023-01-09 一种基于深度强化学习的多租户数据库资源规划与调度方法

Publications (1)

Publication Number Publication Date
CN116185584A true CN116185584A (zh) 2023-05-30

Family

ID=86439644

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310024259.9A Pending CN116185584A (zh) 2023-01-09 2023-01-09 一种基于深度强化学习的多租户数据库资源规划与调度方法

Country Status (1)

Country Link
CN (1) CN116185584A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116804963A (zh) * 2023-08-24 2023-09-26 北京遥感设备研究所 一种使数据库行为监测系统多样化的方法及系统
CN117863948A (zh) * 2024-01-17 2024-04-12 广东工业大学 一种辅助调频的分散电动汽车充电控制方法及装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116804963A (zh) * 2023-08-24 2023-09-26 北京遥感设备研究所 一种使数据库行为监测系统多样化的方法及系统
CN116804963B (zh) * 2023-08-24 2023-11-14 北京遥感设备研究所 一种使数据库行为监测系统多样化的方法及系统
CN117863948A (zh) * 2024-01-17 2024-04-12 广东工业大学 一种辅助调频的分散电动汽车充电控制方法及装置
CN117863948B (zh) * 2024-01-17 2024-06-11 广东工业大学 一种辅助调频的分散电动汽车充电控制方法及装置

Similar Documents

Publication Publication Date Title
CN111491006B (zh) 负载感知的云计算资源弹性分配系统及方法
CN116185584A (zh) 一种基于深度强化学习的多租户数据库资源规划与调度方法
CN110389820B (zh) 一种基于v-TGRU模型进行资源预测的私有云任务调度方法
CN111966484A (zh) 一种基于深度强化学习的集群资源管理和任务调度方法及系统
CN112416578B (zh) 一种基于深度强化学习的容器云集群资源利用优化方法
CN115168027B (zh) 一种基于深度强化学习的算力资源度量方法
CN112685170A (zh) 备份策略的动态优化
CN111752708A (zh) 一种基于深度学习的存储系统自适应参数调优方法
US20220195434A1 (en) Oversubscription scheduling
CN116225696B (zh) 用于流处理系统的算子并发度调优方法及装置
CN116932198A (zh) 资源调度方法、装置、电子设备及可读存储介质
CN112148471A (zh) 分布式计算系统中资源调度的方法和装置
CN118093139A (zh) 一种任务调度决策处理方法及装置
CN117056020A (zh) 容器伸缩方法、系统、电子设备及存储介质
CN109271295B (zh) 一种云集群环境下的异常作业预测方法
CN116743825A (zh) 服务器管理方法、装置、计算机设备和存储介质
KR20160044623A (ko) 리눅스 가상 서버의 로드 밸런싱 방법
CN114138416A (zh) 面向负载-时间窗口的基于dqn云软件资源自适应分配方法
CN118170550B (zh) Node节点水位线阈值调节方法、装置及相关设备
CN118467186B (zh) 多租户无服务器平台资源管理方法及系统
CN118245234B (zh) 一种基于云计算的分布式负载均衡方法及系统
Wei et al. RLConfig: Run-time configuration of cluster schedulers via deep reinforcement learning
CN112306641B (zh) 一种用于虚拟机迁移模型的训练方法
CN109976880B (zh) 一种虚拟机资源使用的方法及其系统
CN116090791A (zh) 一种高频扰动环境下基于grn-rl的云边生产调度调控方法

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