一种虚拟机调优的方法及装置与流程

文档序号:20009140发布日期:2020-02-22 03:53阅读:120来源:国知局
一种虚拟机调优的方法及装置与流程

本发明涉及计算机技术领域,尤其涉及一种虚拟机调优的方法及装置。



背景技术:

虚拟机调优目前主流的方案是使用辅助工具来人工分析原因,并相应修改参数再次试验的方法来自动化寻找最优参数。上述过程必须逐个分析,分析完再次实验需要手工记录调参后的试验结果并进行比对分析,循环往复,费时费力效率低下,且容易出错。

同时,上述方案依赖调优人的经验,且只能针对特定的几个参数进行试验,而虚拟机与性能相关的参数多达700多个。因而,急需一种可自动全面地为虚拟机确定最优参数的方法。



技术实现要素:

本发明实施例提供一种虚拟机调优的方法及装置,用以解决自动全面地为虚拟机确定最优参数的问题。

第一方面,本发明实施例提供一种虚拟机调优的方法,包括:

通过至少一轮调优操作,确定虚拟机在设定并发量下符合预设单位时间处理量的配置参数;所述调优操作包括:

获取多个虚拟机参数组;其中,每个虚拟机参数组中包括配置参数和单位时间处理量;每个虚拟机参数组用于表示按照所述配置参数进行配置的虚拟机在所述设定并发量下通过实际运行得到的所述单位时间处理量;

将所述多个虚拟机参数组通过高斯分布确定符合预设置信度的置信区间,所述置信区间用于表示每组配置参数对应的预测得到的单位时间处理量;

通过预设的采集函数确定所述置信区间对应的调优配置参数;

确定所述虚拟机在所述调优配置参数下实际运行得到的单位时间处理量;

若所述调优配置参数对应的实际运行得到的单位时间处理量不满足所述预设单位时间处理量,则在下一轮调优操作中增加所述调优配置参数对应的虚拟机参数组。

需要说明的是,寻找一组配置参数使得系统单位时间处理量最佳的问题一般被称作黑盒优化问题,输入和输出的关系函数未知,且输入到输出的每次试验比较耗时,所以需要一种能够快速寻找到最优解的方法。

上述方案,通过预设单位时间处理量,超过预设单位时间处理量时可结束寻找,基于高斯分布对每组配置参数对应的单位时间处理量进行预测,通过预设的采集函数确定调优配置参数,并在调优配置参数不满足条件的情况下作为已知参数组继续寻找下一个,不需要测试集,也不需要限定调整的参数集合,可以在一次试验后预估下一个参数配置,并能在较少试验次数内寻找到最优配置从而避免了遍历配置参数并更大概率且高效的寻找到全局最优解,而不会陷入到局部最优解。

可选的,所述方法还包括:

确定所述虚拟机在所述调优配置参数下实际运行时的硬件资源使用率;

在下一轮调优操作中增加所述调优配置参数对应的虚拟机参数组之前,还包括:

确定所述调优配置参数下实际运行时的硬件资源使用率不大于第一阈值。

可选的,所述方法还包括:

若所述调优配置参数下实际运行时的硬件资源使用率大于所述第一阈值,则从所述置信区间中去除所述调优配置参数对应的区间;

通过所述采集函数重新从所述置信区间确定调优配置参数;

确定所述虚拟机在所述调优配置参数下实际运行得到的单位时间处理量;

若所述调优配置参数对应的实际运行得到的单位时间处理量不满足所述预设单位时间处理量,则在下一轮调优操作中增加所述调优配置参数对应的虚拟机参数组。

需要说明的是,对于个别的配置参数组,其对应的单位时间处理量满足预设单位时间处理量,但在过程中硬件使用率超过了虚拟机能承受的范围,从而该组调优参数不能作为调优参数组并要从置信区间内删除。

上述方案,通过对当前硬件资源使用率的实时监测将过程中硬件使用率超过虚拟机承受范围的配置参数从置信区间内删除避免了系统由于过载而损坏。

可选的,所述通过预设的采集函数确定所述置信区间对应的调优配置参数,包括:

确定所述置信区间对应的特征值;其中,所述特征值包括每组配置参数对应的置信区间的期望与方差;

通过预设的采集函数将使得所述采集函数函数值最大的一组配置参数作为所述调优配置参数。

上述方案,预设的采集函数根据经验设置。特征值为表征配置参数对应的置信区间特征的量。特征值可以为期望、方差、标准差、平均数等。比如期望大说明该组配置参数对应的单位时间处理量可能较大,方差大说明对该组配置参数对应的预测的单位时间处理量不确定也即对该组配置参数不够了解要继续探索,同时方差大说明该组配置参数可能存在全局最优解。在通过预测函数值选取下一组配置参数时不能仅考虑期望或方差,要将特征值所包含的多个数值结合,从而更大概率且高效的寻找到全局最优解,而不会陷入到局部最优解。

需要说明的是,随着业务的增长,并发数会持续上升,可以低成本的试验多组不同并发数,获取对应的最佳虚拟机参数配置,系统可以基于当前的业务并发数动态的调整虚拟机配置参数。在采集函数函数值最大值对应的配置参数大于一组的情况下,虚拟机参数由多线程获取即多个虚拟机同时进行试验分别输入不同的配置参数,提升了试验效率。

第二方面,本发明实施例提供一种虚拟机调优的装置,包括:

获取模块,用于获取多个虚拟机参数组;其中,每个虚拟机参数组中包括配置参数和单位时间处理量;每个虚拟机参数组用于表示按照所述配置参数进行配置的虚拟机在所述设定并发量下通过实际运行得到的所述单位时间处理量;

处理模块,用于将所述多个虚拟机参数组通过高斯分布确定符合预设置信度的置信区间,所述置信区间用于表示每组配置参数对应的预测得到的单位时间处理量;通过预设的采集函数确定所述置信区间对应的调优配置参数;确定所述虚拟机在所述调优配置参数下实际运行得到的单位时间处理量;若所述调优配置参数对应的实际运行得到的单位时间处理量不满足所述预设单位时间处理量,则在下一轮调优操作中增加所述调优配置参数对应的虚拟机参数组。

可选的,所述处理模块还用于:

确定所述虚拟机在所述调优配置参数下实际运行时的硬件资源使用率;

在下一轮调优操作中增加所述调优配置参数对应的虚拟机参数组之前,还包括:

确定所述调优配置参数下实际运行时的硬件资源使用率不大于第一阈值。

可选的,所述处理模块还用于:

若所述调优配置参数下实际运行时的硬件资源使用率大于所述第一阈值,则从所述置信区间中去除所述调优配置参数对应的区间;

通过所述采集函数重新从所述置信区间确定调优配置参数;

确定所述虚拟机在所述调优配置参数下实际运行得到的单位时间处理量;

若所述调优配置参数对应的实际运行得到的单位时间处理量不满足所述预设单位时间处理量,则在下一轮调优操作中增加所述调优配置参数对应的虚拟机参数组。

可选的,所述处理模块具体用于:

确定所述置信区间对应的特征值;其中,所述特征值包括每组配置参数对应的置信区间的期望与方差;

通过预设的采集函数将使得所述采集函数函数值最大的一组配置参数作为所述调优配置参数。

第三方面,本发明实施例提供一种计算机被控设备,包括:

存储器,用于存储程序指令;

处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述第一方面所述的方法。

第四方面,本发明实施例提供一种计算机可读非易失性存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行上述第一方面所述的方法。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种系统架构的示意图;

图2为本发明实施例提供的一种虚拟机调优的方法的流程示意图;

图3为本发明实施例提供的一种虚拟机调优的方法的流程示意图;

图4a、图4b和图4c为本发明实施例提供的一种虚拟机调优的方法的示意图;

图5为本发明实施例提供的一种虚拟机调优的装置的结构示意图。

具体实施方式

为了更好的理解上述技术方案,下面将结合说明书附图及具体的实施方式对上述技术方案进行详细的说明,应当理解本发明实施例以及实施例中的具体特征是对本发明技术方案的详细的说明,而不是对本发明技术方案的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互结合。

图1示例性的示出了本发明实施例所适用的一种系统架构,该系统架构可以包括虚拟机100、被调应用200、动态优化器300。

其中,虚拟机100用于在调用被调应用200后基于设定并发量发起压力测试,从而确定虚拟机实际运行得到的单位时间处理量。

动态优化器300用于本方案中确定虚拟机100的配置参数,并将配置参数分发给虚拟机100;虚拟机100将测试的输出结果反馈给动态优化器300,以使动态优化器300找出下一组配置参数作为虚拟机100的下一轮的配置参数。

需要说明的是,上述图1所示的结构仅是一种示例,本发明实施例对此不做限定。

为了更好的解释上述实施例,本发明通过至少一轮调优操作,确定虚拟机在设定并发量下符合预设单位时间处理量的配置参数,调优操作包括如图2所示的步骤,图2示例性的示出了一种虚拟机调优的方法的流程,该流程可以由虚拟机调优的装置执行。

如图2所示,该流程具体包括:

步骤201,获取多个虚拟机参数组。

需要说明的是,每个虚拟机参数组中包括配置参数和单位时间处理量;每个虚拟机参数组用于表示按照配置参数进行配置的虚拟机在设定并发量下通过实际运行得到的单位时间处理量。在对一个虚拟机调优时,最初的虚拟机参数组中的配置参数是根据历史经验得到的,如根据调优人员的经验确定几个有效的配置参数,基于每个配置参数进行虚拟机的压力测试,得到实际运行的单位时间处理量;最初的虚拟机参数组中的配置参数也可以是随机设置的配置参数,对随机设置的配置参数进行压力测试。

步骤202,将多个虚拟机参数组通过高斯分布确定符合预设置信度的置信区间。

此步骤中通过高斯分布的方式可以基于已知信息得到预测信息及预测信息的置信度;换言之,即可以通过已知的虚拟机参数组得到各配置参数的预测的单位时间处理量及各预测结果的置信度。具体的,置信区间用于表示每组配置参数对应的预测得到的单位时间处理量。预设置信度的设置可根据调优要求具体设置,为了减少误差,可以将置信度设置的高一些,如设置为95%。

步骤203,通过预设的采集函数确定置信区间对应的调优配置参数。

具体来说,通过步骤202中的置信区间从各配置参数中选取至少一个配置参数作为调优配置参数。调优配置参数的作用是为了进行后续的压力测试,通过压力测试确定调优配置参数是否可作为最终符合虚拟机要求的配置参数;或者,把调优配置参数作为下一轮调优的虚拟机参数组,从而循环进行得到最终符合虚拟机要求的配置参数。从调优配置参数的作用可以看出,此步骤的关键性。若采集函数配置的不合理,可能会导致需要多轮调优才能找到最终符合虚拟机要求的配置参数;若采集函数配置合理,可能通过少数几轮调优既可以找到最终符合虚拟机要求的配置参数。上述的压力测试一般是给定一个并发量,比如给定并发量为300,向虚拟机中输入一组配置参数,通过实际运行得到对应的单位时间处理量。实际运行过程中监测硬件资源使用率,当超出合理范围时就排除其作为最终的配置参数。

实际调优中,采集函数的设置可以有多种方式,本发明实施例提供如下方式。具体的,确定置信区间对应的特征值,其中,特征值包括每组配置参数对应的置信区间的期望与方差,具体的,每组配置参数对应的单位时间处理量为动态优化器预测的一个数集,通过公式计算得到数集的期望和方差。通过预设的采集函数将使得采集函数函数值最大的一组配置参数作为调优配置参数。

需要说明的是,预设的采集函数根据经验设置。采集函数也可以叫效能函数(utilityfuntcion),但一般还是称呼为采集函数,采集函数包括很多种,特征值为表征配置参数对应的置信区间特征的量。特征值可以为期望、方差、标准差、平均数等或为其中多个数值的加权组合。比如较为简单的ucb(upperconfidencebound),其函数式为:ucb=μ(x)+kσ(x),其中,μ为期望,σ为方差,k为调节参数可直观地理解为上置信边界。期望大说明该组配置参数对应的单位时间处理量可能较大,方差大说明对该组配置参数对应的预测的单位时间处理量不确定,也即对该组配置参数不够了解要继续探索,同时方差大说明该组配置参数可能存在全局最优解。在通过预测函数值选取下一组配置参数时不能仅考虑期望或方差,要将特征值所包含的多个数值结合,从而更大概率且高效的寻找到全局最优解,而不会陷入到局部最优解。当然本方案预设的采集函数不限于上述的ucb,还可以为ei(expectedimprovement)等。

步骤204,获取虚拟机在调优配置参数下实际运行得到的单位时间处理量。

步骤204的具体获取方式不限定,具体的实现方式可参照图1的系统运行过程来进行。需要说明的是,为了低成本的试验,可以通过多个虚拟机同时进行多组不同虚拟机参数配置,在采集函数函数值最大值对应的配置参数大于一组的情况下,虚拟机参数由多线程获取即多个虚拟机同时进行试验分别输入不同的配置参数,提升了试验效率。

步骤205,判断调优配置参数对应的实际运行得到的单位时间处理量是否满足预设单位时间处理量,若否,执行步骤206

步骤206,在下一轮调优操作中增加调优配置参数对应的虚拟机参数组并返回步骤201,直到获取到虚拟机在设定并发量下符合预设单位时间处理量的配置参数。

需要说明的是,寻找一组配置参数使得系统单位时间处理量最佳的问题一般被称作黑盒优化问题,输入和输出的关系函数未知,且输入到输出的每次试验比较耗时,所以需要一种能够快速寻找到最优解的方法。

上述方案,通过预设单位时间处理量,超过预设单位时间处理量时可结束寻找,基于预设的概率分布结合多个虚拟机参数组对每组配置参数对应的单位时间处理量进行预测,通过预设的采集函数确定调优配置参数,并在调优配置参数不满足条件的情况下作为已知参数组继续寻找下一个,不需要测试集,也不需要限定调整的参数集合,可以在一次试验后预估下一个参数配置,并能在较少试验次数内寻找到最优配置从而避免了遍历配置参数并更大概率且高效的寻找到全局最优解,而不会陷入到局部最优解。

进一步的,存在特殊情况即虚拟机在调优配置参数下实际运行时的硬件资源使用率超过了合理范围,本发明还提供了一种虚拟机调优的方法,针对虚拟机在调优配置参数下实际运行时的场景,图3为一种虚拟机调优的方法的流程示意图。

如图3所示,该流程具体包括:

步骤301,确定虚拟机在调优配置参数下实际运行时的硬件资源使用率。

需要说明的是,统计硬件资源的使用情况:包括但不限于cpu、内存、磁盘io以及网络。

步骤302,判断当前硬件资源使用率是否大于第一阈值;若是,则执行步骤303;若否,则继续步骤205。

步骤303,从置信区间中去除调优配置参数对应的区间。

具体的,当服务器资源使用率超出合理范围时,该组调优配置参数视为无效并从置信区间内删除该组参数并重新进入采集函数。

需要说明的是,对于个别的配置参数组,其对应的单位时间处理量满足预设单位时间处理量,但在过程中硬件使用率超过了虚拟机能承受的范围,从而该组调优参数不能作为调优参数组并要从置信区间内删除。

步骤304,通过采集函数重新从置信区间确定调优配置参数并返回步骤301。

上述方案,通过对当前硬件资源使用率的实时监测将过程中硬件使用率超过虚拟机承受范围的配置参数从置信区间内删除避免了系统由于过载而损坏。具体的,当该组配置参数对应的单位时间处理量满足预设的单位时间处理量,单虚拟机硬件使用率超负荷,说明该组配置参数是不安全的,因此从置信区间内删除重新根据采集函数计算,提高了试验的安全性。

进一步的,为了更好地解释上述实施例,下面以并发数为100的情况结合仿真图进行举例说明。图4a、图4b和图4c所示,为本发明实施例提供的一种虚拟机调优的方法的示意图。

如图4a上图所示,图中实线为根据各虚拟机参数组得到的目标曲线(即目标曲线为根据实际运行的虚拟机的配置参数得到的;本方案为了证明通过本方案得到的曲线与目标曲线类似),已观测点为图中4个点也即根据4组配置参数获取4个虚拟机参数组,横轴代表虚拟机的配置参数,纵轴代表配置参数对应的单位时间处理量,基于高斯分布计算95%置信曲线区间如阴影部分,虚线表示高斯回归过程求得的未知点的均值μ,同时高斯过程也会给出未知点的标准差σ,可见越是靠近已知点,标准差越小,越是远离已知点,标准差越大,此时说明基于高斯分布对这个未知点越不确定。通过采集函数计算得到的预测曲线如图4a下图中曲线所示,横轴与图4a上图相对应,为虚拟机的配置参数,纵轴为配置参数对应的采集函数的函数值,星型标出的点是使采集函数函数值最大的点即是当前预测的最佳点,最佳点对应的横坐标即调优配置参数,以该点对应的配置参数进行试验,得到图4b上图,如图4b上图所示,此时根据5个已观测点基于高斯分布计算95%置信曲线区间如阴影部分,重复以上过程得到图4b下图,获取到下次试验的配置参数,以此往复,直至试验的单位时间处理量大于预设单位时间处理量,退出循环,得到图4c下图的结果,此时星型标出的点也即预测的最佳点,我们可以看出,此时星型标出的点的横坐标对应图4c上图中目标曲线的单位时间处理量很接近最大值,也即已经非常接近真实的全局最优解了。

基于相同的技术构思,图5示例性的示出了本发明实施例提供一种虚拟机调优的装置的结构,该装置可以执行虚拟机调优方法的流程。

如图5所示,该装置可以包括:

获取模块501,获取多个虚拟机参数组;其中,每个虚拟机参数组中包括配置参数和单位时间处理量;每个虚拟机参数组是虚拟机在所述设定并发量下通过实际运行得到的;

处理模块502,用于将所述多个虚拟机参数组通过高斯分布确定符合预设置信度的置信区间,所述置信区间用于表示每组配置参数对应的预测得到的单位时间处理量;通过预设的采集函数确定所述置信区间对应的调优配置参数;获取所述虚拟机在所述调优配置参数下实际运行得到的单位时间处理量;若所述调优配置参数对应的实际运行得到的单位时间处理量不满足所述预设单位时间处理量,则在下一轮调优操作中增加所述调优配置参数对应的虚拟机参数组。

可选的,所述处理模块还用于:

确定所述虚拟机在所述调优配置参数下实际运行时的硬件资源使用率;

在下一轮调优操作中增加所述调优配置参数对应的虚拟机参数组之前,还包括:

确定所述调优配置参数下实际运行时的硬件资源使用率不大于第一阈值。

可选的,所述处理模块还用于:

若所述调优配置参数下实际运行时的硬件资源使用率大于所述第一阈值,则从所述置信区间中去除所述调优配置参数对应的区间;

通过所述采集函数重新从所述置信区间确定调优配置参数;

确定所述虚拟机在所述调优配置参数下实际运行得到的单位时间处理量;

若所述调优配置参数对应的实际运行得到的单位时间处理量不满足所述预设单位时间处理量,则在下一轮调优操作中增加所述调优配置参数对应的虚拟机参数组。

可选的,所述处理模块具体用于:

确定所述置信区间对应的特征值;其中,所述特征值包括每组配置参数对应的置信区间的期望与方差;

通过预设的采集函数将使得所述采集函数函数值最大的一组配置参数作为所述调优配置参数。

基于相同的技术构思,本发明实施例还提供了一种计算被控设备,包括:

存储器,用于存储程序指令;

处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述虚拟机调优的方法。

基于相同的技术构思,本发明实施例还提供了一种计算机可读非易失性存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行上述虚拟机调优的方法。

最后应说明的是:本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明的方法、被控设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理被控设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理被控设备的处理器执行的指令产生用于实现在流程图一个流程或多个和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理被控设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1