《一种用于资源分配的方法和装置.pdf》由会员分享,可在线阅读,更多相关《一种用于资源分配的方法和装置.pdf(14页完整版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 104077189 A (43)申请公布日 2014.10.01 CN 104077189 A (21)申请号 201310109842.6 (22)申请日 2013.03.29 G06F 9/50(2006.01) G06F 9/455(2006.01) (71)申请人 西门子公司 地址 德国慕尼黑 (72)发明人 刘彦 戚威 (74)专利代理机构 北京康信知识产权代理有限 责任公司 11240 代理人 李慧 (54) 发明名称 一种用于资源分配的方法和装置 (57) 摘要 本发明涉及一种用于资源分配的方法和装 置, 该装置包括 : 监测模块, 用于周期或非周期地 。
2、收集用于表征所述应用系统当前性能状况的性能 数据 ; 资源缩放模块, 用于在到达指定的时间处 的条件下, 根据所述应用系统的历史工作负荷并 基于当前用于所述应用系统的虚拟机资源确定满 足所述应用系统将要出现的工作负荷而需要改变 的虚拟机资源, 否则根据所述收集的当前性能数 据并基于当前用于所述应用系统的虚拟机资源确 定满足所述应用系统现有工作负荷需要改变的虚 拟机资源 ; 以及部署模块, 用于根据所确定的需 要改变的虚拟机资源, 调整用于所述应用系统的 虚拟机资源。利用该方法和装置, 能够及时、 准确 地向应用系统分配资源。 (51)Int.Cl. 权利要求书 3 页 说明书 8 页 附图 2。
3、 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书3页 说明书8页 附图2页 (10)申请公布号 CN 104077189 A CN 104077189 A 1/3 页 2 1. 一种为应用系统分配虚拟机资源的方法, 包括 : 周期或非周期地收集用于表征所述应用系统当前性能状况的性能数据 ; 如果到达指定的时间处, 则根据所述应用系统的历史工作负荷并基于当前用于所述应 用系统的虚拟机资源确定满足所述应用系统将要出现的工作负荷而需要改变的虚拟机资 源, 否则, 根据所述收集的应用系统的当前性能数据并基于当前用于所述应用系统的虚拟 机资源确定满足所述应用系统现有工作负荷需。
4、要改变的虚拟机资源 ; 以及 根据所确定的需要改变的虚拟机资源, 调整用于所述应用系统的虚拟机资源。 2. 如权利要求 1 所述的方法, 其中, 所述虚拟机资源为虚拟机的数量。 3. 如权利要求 2 所述的方法, 其中, 还包括 : 以负荷均衡的方式调度调整后的多个虚拟 机来运行所述应用系统。 4. 如权利要求 2 所述的方法, 其中所述根据所述应用系统的历史工作负荷并基于当前 用于所述应用系统的虚拟机资源确定满足所述应用系统将要出现的工作负荷而需要改变 的虚拟机资源的步骤包括 : 根据所述应用系统的历史工作负荷, 预测所述应用系统即将出 现的工作负荷 ; 以及计算完成预测的工作负荷所需的虚拟。
5、机数量与当前用于所述应用系统 的虚拟机数量之差, 作为需要改变的虚拟机数量。 5. 如权利要求 2 所述的方法, 其中, 所述收集的当前性能数据包括表征用于所述应用 系统的各个虚拟机的资源使用情况的资源数据, 并且, 所述根据所述收集的应用系统的当前性能状况的性能数据并基于当前用于所述 应用系统的虚拟机资源确定满足所述应用系统现有工作负荷需要改变的虚拟机资源的步 骤包括 : 根据所述资源数据, 计算当前用于所述应用系统的虚拟机中的第一种虚拟机的数量和 第二种虚拟机的数量, 其中, 所述第一种虚拟机的至少一个资源数据与其所允许的最大值 的比值大于指定上限阈值, 以及, 所述第二种虚拟机的每一个资。
6、源数据与其所允许的最大 值的比值小于指定下限阈值 ; 和根据所述第一种虚拟机的数量和所述第二种虚拟机的数 量, 计算在当前用于所述应用系统的虚拟机的基础上满足所述应用系统现有工作负荷而需 要改变的虚拟机数量。 6. 如权利要求 2 所述的方法, 其中, 所述收集的当前性能数据还包括所述应用系统的 并发请求数和 / 或所述应用系统的请求响应时间, 并且所述根据所述收集的应用系统的当前性能数据并基于当前用于所述应用系统的 虚拟机资源确定满足所述应用系统现有工作负荷需要改变的虚拟机资源的步骤进一步包 括 : 根据所述第一种虚拟机的数量和所述第二种虚拟机的数量以及所述应用系统的并发 请求数和 / 或所。
7、述应用系统的请求响应时间, 计算在当前用于所述应用系统的虚拟机的基 础上满足所述应用系统现有工作负荷而需要改变的虚拟机数量。 7. 如权利要求 2 所述的方法, 其中, 所述根据所确定的需要改变的虚拟机资源, 调整用于所述应用系统的虚拟机资源的步 骤包括 : 如果所述确定的虚拟机数量是正数, 则为所述应用系统创建所述确定的虚拟机数量的 虚拟机 ; 以及如果所述确定的虚拟机数量是负数, 则从当前用于所述应用系统的虚拟机中 权 利 要 求 书 CN 104077189 A 2 2/3 页 3 回收部分虚拟机不再用于所述应用系统, 其中所回收的虚拟机数量等于所述确定的虚拟机 数量的绝对值。 8. 如。
8、权利要求 1 所述的方法, 其中, 所述根据所述收集的当前性能数据并基于当前用 于所述应用系统的虚拟机资源确定满足所述应用系统现有工作负荷需要改变的虚拟机资 源的步骤是以固定的周期执行的。 9. 一种用于资源分配的装置, 包括 : 监测模块, 用于周期或非周期地收集用于表征所述应用系统当前性能状况的性能数 据 ; 资源缩放模块, 用于在到达指定的时间处的条件下, 根据所述应用系统的历史工作负 荷并基于当前用于所述应用系统的虚拟机资源确定满足所述应用系统将要出现的工作负 荷而需要改变的虚拟机资源, 否则, 根据所述收集的当前性能数据并基于当前用于所述应 用系统的虚拟机资源确定满足所述应用系统现有。
9、工作负荷需要改变的虚拟机资源 ; 以及 部署模块, 用于根据所确定的需要改变的虚拟机资源, 调整用于所述应用系统的虚拟 机资源。 10. 如权利要求 9 所述的装置, 其中所述虚拟机资源是虚拟机的数量。 11. 如权利要求 10 所述的装置, 其中, 还包括 : 负荷均衡模块, 用于以负荷均衡的方式 调度调整后的多个虚拟机来运行所述应用系统。 12. 如权利要求 10 所述的装置, 所述资源缩放模块包括 : 第一计算模块, 用于根据所述应用系统的历史工作负荷, 预测所述应用系统即将出现 的工作负荷 ; 以及 第二计算模块, 用于计算完成预测的工作负荷所需的虚拟机数量与当前用于所述应用 系统的虚。
10、拟机数量之差, 作为需要改变的虚拟机数量。 13. 如权利要求 10 所述的装置, 其中所述收集的性能数据包括表征用于所述应用系统 的各个虚拟机的资源使用情况的资源数据, 所述资源缩放模块包括 : 第三计算模块, 其用于根据所述资源数据, 计算当前用于所述应用系统的虚拟机中的 第一种虚拟机的数量和第二种虚拟机的数量, 其中, 所述第一种虚拟机的至少一个资源数 据与其所允许的最大值的比值大于指定上限阈值, 以及, 所述第二种虚拟机的每一个资源 数据与其所允许的最大值的比值小于指定下限阈值 ; 以及第四计算模块, 其用于根据所述 第一种虚拟机的数量和所述第二种虚拟机的数量, 计算在当前用于所述应用。
11、系统的虚拟机 的基础上满足所述应用系统现有工作负荷而需要改变的虚拟机数量。 14. 如权利要求 10 所述的装置, 其中, 所述性能数据还包括所述应用系统的并发请求数和 / 或所述应用系统的请求响应时 间, 并且所述第四计算模块进一步用于 : 根据所述第一种虚拟机的数量和所述第二种虚拟 机的数量以及所述应用系统的并发请求数和 / 或所述应用系统的请求响应时间, 计算在当 前用于所述应用系统的虚拟机的基础上满足所述应用系统现有工作负荷而需要改变的虚 拟机数量。 15. 如权利要求 10 所述的装置, 其中, 所述部署模块包括 : 创建模块, 用于如果所述确定的虚拟机数量是正数, 则为所述应用系统。
12、创建所述确定 权 利 要 求 书 CN 104077189 A 3 3/3 页 4 的虚拟机数量的虚拟机 ; 以及 回收模块, 用于如果所述确定的虚拟机数量是负数, 则从当前用于所述应用系统的虚 拟机中回收虚拟机不再用于所述应用系统, 其中所回收的虚拟机数量等于所述确定的需要 改变的虚拟机数量的绝对值。 16. 如权利要求 10 所述的装置, 其中, 所述根据所述收集的当前性能数据并基于当前 用于所述应用系统的虚拟机资源确定满足所述应用系统现有工作负荷需要改变的虚拟机 资源的步骤是以固定的周期执行的。 权 利 要 求 书 CN 104077189 A 4 1/8 页 5 一种用于资源分配的方法。
13、和装置 技术领域 0001 本发明涉及计算机领域, 尤其涉及一种用于资源分配的方法和装置。 背景技术 0002 在信息技术领域, 虚拟机技术得到了广泛应用。虚拟机技术是指在一个物理的计 算机上, 通过软件模拟出多个虚拟的计算机 (简称为虚拟机) , 这些虚拟机完全就像真正的 计算机那样进行工作, 在其上可以例如安装操作系统、 安装应用程序、 访问网络资源等。 0003 当要在物理的计算机上运行应用系统并向其分配资源时, 通常以虚拟机的方式进 行分配, 这里, 应用系统包括应用程序和系统程序, 例如但不局限于字处理器、 网络浏览器、 数据库软件、 电子邮件服务、 操作系统软件等。 常规的资源分配。
14、方法采用静态资源分配的方 式向应用分配虚拟机。 在静态资源分配中, 预先估计应用系统可能会出现的尖峰工作负荷, 然后向应用系统分配固定数量的虚拟机, 其中该固定数量等于处理所估计的尖峰工作负荷 所需的虚拟机的数量。 0004 静态分配存在两个缺点。第一个缺点是能量浪费, 通常每一个应用系统不是总是 处于尖峰工作负荷状态, 从而分配给应用系统的各个虚拟机平均仅在 10%-30% 时间处于忙 碌状态, 但虚拟机即使处于空闲状态也会消耗其忙碌时所消耗的能量的 60% 或更多。第二 个缺点是如果应用系统实际出现的工作负荷超出预先估计的尖峰工作负荷则超出的那部 分工作负荷将不能被处理。 0005 为了克。
15、服静态分配所存在的问题, 人们提出了两种用于资源分配的方法 : 基于预 测的资源分配方法和基于反应的资源分配方法。其中, 基于预测的资源分配方法是利用应 用系统的历史工作负荷 (即应用系统以前实际出现过的工作负荷) 来预测应用系统将要出 现的工作负荷并基于所预测的工作负荷来增加或缩减用于应用系统的虚拟机, 而基于反应 的资源分配方法使用反馈控制技术来检测应用系统当前的工作负荷并相应地增加或缩减 用于应用系统的虚拟机。 0006 基于预测的资源分配方法能够提前预测应用系统将要出现的工作负荷, 从而能够 及时向应用系统分配资源, 但其基于历史工作负荷进行预测, 因此预测结果不是非常准确。 基于反应。
16、的资源分配方法能够准确地检测到应用系统的工作负荷, 从而能够准确地向应用 系统分配与其工作负荷相匹配的资源, 但由于资源的分配需要花费时间, 因此在应用系统 的工作负荷剧烈变化时基于反应的资源分配方法不能及时向应用系统分配资源。 发明内容 0007 考虑到现有技术的上述问题, 本发明实施例提出一种用于资源分配的方法和装 置, 其能够及时、 准确地向应用系统分配资源。 0008 按照本发明实施例的一种用于资源分配的方法, 包括 : 周期或非周期地收集用于 表征所述应用系统当前性能状况的性能数据 ; 如果到达指定的时间处, 则根据所述应用系 统的历史工作负荷并基于当前用于所述应用系统的虚拟机资源确。
17、定满足所述应用系统将 说 明 书 CN 104077189 A 5 2/8 页 6 要出现的工作负荷而需要改变的虚拟机资源, 否则, 根据所述收集的应用系统的当前性能 数据并基于当前用于所述应用系统的虚拟机资源确定满足所述应用系统现有工作负荷需 要改变的虚拟机资源 ; 以及根据所确定的需要改变的虚拟机资源, 调整用于所述应用系统 的虚拟机资源。 0009 这里需要说明的是, 虽然这里把收集应用系统性能数据的步骤写在该方法的最前 面, 但这并不表示实施该方法必须先手机性能数据。本领域的技术人员知晓只要在依据性 能数据确定满足所述应用系统现有工作负荷需要改变的虚拟机资源之前收集该性能数据 就可以。。
18、另外, 这里所说的 “现有工作负荷” 即为应用系统正在处理的工作负荷。 0010 优选, 所述虚拟机资源为虚拟机的数量 ; 以负荷均衡的方式调度调整后的多个虚 拟机来运行所述应用系统。 0011 优选, 所述根据所述应用系统的历史工作负荷并基于当前用于所述应用系统的虚 拟机资源确定满足所述应用系统将要出现的工作负荷而需要改变的虚拟机资源的步骤包 括 : 根据所述应用系统的历史工作负荷, 预测所述应用系统即将出现的工作负荷 ; 以及计 算完成预测的工作负荷所需的虚拟机数量与当前用于所述应用系统的虚拟机数量之差, 作 为需要改变的虚拟机数量。 0012 优选, 所述收集的当前性能数据包括表征用于所。
19、述应用系统的各个虚拟机的资源 使用情况的资源数据, 并且, 所述根据所述收集的应用系统的当前性能状况的性能数据并 基于当前用于所述应用系统的虚拟机资源确定满足所述应用系统现有工作负荷需要改变 的虚拟机资源的步骤包括 : 根据所述资源数据, 计算当前用于所述应用系统的虚拟机中的 第一种虚拟机的数量和第二种虚拟机的数量, 其中, 所述第一种虚拟机的至少一个资源数 据与其所允许的最大值的比值大于指定上限阈值, 以及, 所述第二种虚拟机的每一个资源 数据与其所允许的最大值的比值小于指定下限阈值 ; 和根据所述第一种虚拟机的数量和所 述第二种虚拟机的数量, 计算在当前用于所述应用系统的虚拟机的基础上满足。
20、所述应用系 统现有工作负荷而需要改变的虚拟机数量。 0013 优选, 所述收集的当前性能数据还包括所述应用系统的并发请求数和 / 或所述应 用系统的请求响应时间, 并且所述根据所述收集的应用系统的当前性能数据并基于当前用 于所述应用系统的虚拟机资源确定满足所述应用系统现有工作负荷需要改变的虚拟机资 源的步骤进一步包括 : 根据所述第一种虚拟机的数量和所述第二种虚拟机的数量以及所述 应用系统的并发请求数和 / 或所述应用系统的请求响应时间, 计算在当前用于所述应用系 统的虚拟机的基础上满足所述应用系统现有工作负荷而需要改变的虚拟机数量。 0014 优选, 所述根据所确定的需要改变的虚拟机资源, 。
21、调整用于所述应用系统的虚拟 机资源的步骤包括 : 如果所述确定的虚拟机数量是正数, 则为所述应用系统创建所述确定 的虚拟机数量的虚拟机 ; 以及如果所述确定的虚拟机数量是负数, 则从当前用于所述应用 系统的虚拟机中回收部分虚拟机不再用于所述应用系统, 其中所回收的虚拟机数量等于所 述确定的虚拟机数量的绝对值。 0015 优选, 所述根据所述收集的当前性能数据并基于当前用于所述应用系统的虚拟机 资源确定满足所述应用系统现有工作负荷需要改变的虚拟机资源的步骤是以固定的周期 执行的。 0016 本发明的另外一个实施例还公开了一种用于资源分配的装置, 该装置包括 : 监测 说 明 书 CN 10407。
22、7189 A 6 3/8 页 7 模块, 用于周期或非周期地收集用于表征所述应用系统当前性能状况的性能数据 ; 资源缩 放模块, 用于在到达指定的时间处的条件下, 根据所述应用系统的历史工作负荷并基于当 前用于所述应用系统的虚拟机资源确定满足所述应用系统将要出现的工作负荷而需要改 变的虚拟机资源, 否则, 根据所述收集的当前性能数据并基于当前用于所述应用系统的虚 拟机资源确定满足所述应用系统现有工作负荷需要改变的虚拟机资源 ; 以及部署模块, 用 于根据所确定的需要改变的虚拟机资源, 调整用于所述应用系统的虚拟机资源。 0017 优选, 所述装置还包括 : 负荷均衡模块, 用于以负荷均衡的方式。
23、调度调整后的多个 虚拟机来运行所述应用系统。 0018 优选, 所述资源缩放模块包括 : 第一计算模块, 用于根据所述应用系统的历史工作 负荷, 预测所述应用系统即将出现的工作负荷 ; 以及第二计算模块, 用于计算完成预测的工 作负荷所需的虚拟机数量与当前用于所述应用系统的虚拟机数量之差, 作为需要改变的虚 拟机数量。 0019 优选, 所述收集的性能数据包括表征用于所述应用系统的各个虚拟机的资源使用 情况的资源数据, 所述资源缩放模块包括 : 第三计算模块, 其用于根据所述资源数据, 计算 当前用于所述应用系统的虚拟机中的第一种虚拟机的数量和第二种虚拟机的数量, 其中, 所述第一种虚拟机的至。
24、少一个资源数据与其所允许的最大值的比值大于指定上限阈值, 以 及, 所述第二种虚拟机的每一个资源数据与其所允许的最大值的比值小于指定下限阈值 ; 以及第四计算模块, 其用于根据所述第一种虚拟机的数量和所述第二种虚拟机的数量, 计 算在当前用于所述应用系统的虚拟机的基础上满足所述应用系统现有工作负荷而需要改 变的虚拟机数量。 0020 优选, 所述性能数据还包括所述应用系统的并发请求数和 / 或所述应用系统的请 求响应时间, 并且所述第四计算模块进一步用于 : 根据所述第一种虚拟机的数量和所述第 二种虚拟机的数量以及所述应用系统的并发请求数和 / 或所述应用系统的请求响应时间, 计算在当前用于所。
25、述应用系统的虚拟机的基础上满足所述应用系统现有工作负荷而需要 改变的虚拟机数量。 0021 优选, 所述部署模块包括 : 创建模块, 用于如果所述确定的虚拟机数量是正数, 则 为所述应用系统创建所述确定的虚拟机数量的虚拟机 ; 以及回收模块, 用于如果所述确定 的虚拟机数量是负数, 则从当前用于所述应用系统的虚拟机中回收虚拟机不再用于所述应 用系统, 其中所回收的虚拟机数量等于所述确定的需要改变的虚拟机数量的绝对值。 0022 优选, 所述根据所述收集的当前性能数据并基于当前用于所述应用系统的虚拟机 资源确定满足所述应用系统现有工作负荷需要改变的虚拟机资源的步骤是以固定的周期 执行的。 002。
26、3 从上面的描述可以看出, 本发明实施例的方案组合基于预测的资源分配方法和基 于反应的资源分配方法来调整用于应用系统的虚拟机, 由于基于预测的资源分配方法能够 及时调整用于应用系统的虚拟机和基于反应的资源分配方法能够准确地调整用于应用系 统的虚拟机, 因此, 与现有技术相比, 本发明实施例的方案可以及时、 准确地向应用系统分 配资源。 附图说明 说 明 书 CN 104077189 A 7 4/8 页 8 0024 本发明的其它特征、 特点、 优点和益处通过以下结合附图的详细描述将变得更加 显而易见。 0025 图 1 示出了按照本发明一个实施例的用于资源分配的方法的流程图。 0026 图 2。
27、 示出了按照本发明一个实施例的用于资源分配的装置的示意图。 0027 图 3 示出了按照本发明一个实施例的计算设备的示意图。 具体实施方式 0028 本发明实施例的方案组合基于预测的资源分配方法和基于反应的资源分配方法 来调整用于应用系统的虚拟机。 基于预测的资源分配方法能够及时调整用于应用系统的虚 拟机, 而基于反应的资源分配方法能够准确地调整用于应用系统的虚拟机, 因此, 本发明实 施例的方案可以及时、 准确地向应用系统分配资源。 0029 下面, 将结合附图详细本发明的各个实施例。 0030 现在参见图 1, 其示出了按照本发明一个实施例的用于资源分配的方法的流程图。 图 1 所示的方法。
28、可以由计算设备 C 执行, 这里, 计算设备 C 可以是任何具有计算能力的设 备, 例如但不局限于服务器、 台式电脑、 笔记本电脑等。 0031 如图1所示, 在步骤S100, 计算设备C从当前用于在计算设备C上运行的任一应用 系统 Y 的各个虚拟机中, 周期或非周期地收集当前用于应用系统 Y 的各个虚拟机的中央处 理单元 (CPU) 使用率和内存使用率, 作为表征当前用于应用系统 Y 的各个虚拟机的资源使 用情况的资源数据。这里, 用于应用系统 Y 的各个虚拟机的资源数据仅是应用系统 Y 的用 于表征其性能状况的性能数据的其中一种。 0032 在步骤S104, 计算设备C检查自从上一次基于应。
29、用系统Y的历史工作负荷 (即应用 系统 Y 以前出现过的工作负荷) 计算在当前用于应用系统 Y 的虚拟机的基础上满足应用系 统 Y 即将出现的工作负荷而需要改变的虚拟机数量之后已流逝的时间是否已经达到指定 时间长度 CD, 即检查是否已经到达基于应用系统 Y 的历史工作负荷来计算在当前用于应用 系统Y的虚拟机的基础上满足应用系统Y即将出现的工作负荷而需要改变的虚拟机数量的 时间。这里, 每一次检查间隔的指定时间长度 CD 可以是相同的或不相同的。 0033 在步骤 S108, 如果步骤 S104 的检查结果为肯定, 即自从上一次基于应用系统 Y 的 历史工作负荷来计算在当前用于应用系统Y的虚拟。
30、机的基础上满足应用系统Y即将出现的 工作负荷而需要改变的虚拟机数量之后已流逝的时间已经达到指定时间长度 CD, 则计算设 备 C 利用滑动平均模型 (MAM : Moving Averages Model) 算法按照以下等式 (1) 来预测 (计 算) 应用系统 Y 即将出现的工作负荷 : 0034 X(t)=(X(t-1)+X(t-2)+X(t-k)/k 等式 (1) , 0035 其中, 在等式 (1)中, X(t) 表示应用系统 Y 即将出现的工作负荷, X(t-1), X(t-2), X(t-k) 表示应用系统 Y 以前出现过的 k 个工作负荷。 0036 在步骤 S112, 计算设备。
31、 C 根据每个虚拟机所能承担的最大工作负荷, 计算承担所 计算的应用系统 Y 即将出现的工作负荷所需的虚拟机数量或者硬件配置 (例如 CPU、 内存 等) 。 0037 在步骤 S116, 计算设备 C 计算承担应用系统 Y 即将出现的工作负荷所需的虚拟机 数量与当前用于应用系统 Y 的虚拟机数量之差, 作为在当前用于应用系统 Y 的虚拟机的基 说 明 书 CN 104077189 A 8 5/8 页 9 础上满足应用系统 Y 即将出现的工作负荷而需要改变的虚拟机数量, 然后, 然后流程进行 到步骤 S132。 0038 在步骤 S120, 如果步骤 S104 的检查结果为否定, 即自从上一次。
32、基于应用系统 Y 的 历史工作负荷来计算在当前用于应用系统Y的虚拟机的基础上满足应用系统Y即将出现的 工作负荷而需要改变的虚拟机数量之后已流逝的时间未达到指定时间长度 CD, 则计算设备 C 通过将所收集的当前用于应用系统 Y 的各个虚拟机的 CPU 使用率除以 CPU 使用率所允许 的最大值以及将所收集的当前用于应用系统 Y 的各个虚拟机的内存使用率除以内存使用 率所允许的最大值, 计算当前用于应用系统 Y 的各个虚拟机的 CPU 使用率比值和内存使用 率比值。 0039 在步骤 S124, 计算设备 C 计算第一种虚拟机的数量和第二种虚拟机的数量, 其中, 第一种虚拟机是当前用于应用系统Y。
33、的各个虚拟机中的其CPU使用率比值大于第一指定上 限阈值或其内存使用率比值大于第二指定上限阈值的虚拟机, 而第二种虚拟机是当前用于 应用系统Y的各个虚拟机中的其CPU使用率比值小于第一指定下限阈值和其内存使用率比 值小于第二指定下限阈值的虚拟机。 0040 在步骤 S128, 计算设备 C 利用所计算的第一种虚拟机的数量和第二种虚拟机的数 量, 计算在当前用于应用系统 Y 的虚拟机的基础上满足应用系统 Y 即将出现的工作负荷而 需要改变的虚拟机数量。其中, 如果所计算的第一种虚拟机的数量和第二种虚拟机的数量 都为零, 则将在当前用于应用系统 Y 的虚拟机的基础上满足应用系统 Y 现有的工作负荷。
34、而 需要改变的虚拟机数量设置为零。 如果所计算的第一种虚拟机的数量等于当前用于应用系 统 Y 的虚拟机的数量, 则将在当前用于应用系统 Y 的虚拟机的基础上满足应用系统 Y 现有 的的工作负荷而需要改变的虚拟机数量设置为指定数量, 即认为在当前用于应用系统 Y 的 虚拟机的基础上增加该指定数量的虚拟机才可以满足应用系统 Y 即将出现的工作负荷。如 果所计算的第二种虚拟机的数量不等于零, 则将在当前用于应用系统 Y 的虚拟机的基础上 满足应用系统 Y 现有的工作负荷而需要改变的虚拟机数量设置为负的第二种虚拟机的数 量, 然后流程进行到步骤 S132。 0041 在步骤 S132, 计算设备 C 。
35、根据所计算的在当前用于应用系统 Y 的虚拟机的基础上 满足应用系统 Y 即将出现的工作负荷而需要改变的虚拟机数量, 调整用于应用系统 Y 的虚 拟机。其中, 如果所计算的在当前用于应用系统 Y 的虚拟机的基础上满足应用系统 Y 即将 出现的工作负荷而需要改变的虚拟机数量为正数, 则计算设备 C 为应用系统 Y 创建和分配 新的虚拟机, 所创建的虚拟机数量等于所计算的需要改变的虚拟机数量。如果所计算的在 当前用于应用系统Y的虚拟机的基础上满足应用系统Y即将出现的工作负荷而需要改变的 虚拟机数量为负数, 则计算设备 C 从当前用于应用系统 Y 的虚拟机中回收部分虚拟机不再 用于应用系统 Y, 其中。
36、所回收的虚拟机数量等于所计算的需要改变的虚拟机数量的绝对值。 这里, 虚拟机的创建需要花费一定的时间, 因此, 可以假定从开始创建虚拟机起经过指定时 间之后虚拟机就能被创建出来, 或者, 可以通过检测所要创建的虚拟机是否存在来确定虚 拟机是否已经被创建出来。这里, 所要回收的虚拟机可以选择工作负荷较小的虚拟机。并 且所要回收的虚拟机处于空闲状态时可以销毁或不销毁, 可以假定从不再向虚拟机分配新 的工作负荷起经过预定的时间之后虚拟机就处于空闲状态, 或者可以通过检测虚拟机的状 态来确定虚拟机是否处于空闲状态。 说 明 书 CN 104077189 A 9 6/8 页 10 0042 在步骤 S1。
37、36, 计算设备 C 以负荷均衡的方式, 调度调整后的虚拟机来服务应用系 统 Y。例如, 当从终端接收到一个针对应用系统 Y 的会话请求时, 计算设备 C 可以从调整后 的用于应用系统 Y 的虚拟机中选择其工作负荷较小的虚拟机来与该终端建立会话。 0043 其它变型 0044 本领域技术人员应当理解, 虽然在上面的实施例中, 基于滑动平均模型 (MAM) 算法 利用应用系统 Y 以前出现过的工作负荷来计算应用系统 Y 即将出现的工作负荷, 然而, 本 发明并不局限于此。在本发明的其它一些实施例中, 也可以基于任何合适的算法利用应用 系统 Y 以前出现过的工作负荷来预测应用系统 Y 即将出现的工。
38、作负荷, 例如指数平滑 (ES : Exponential Smoothing)算法、 自回归滑动平均模型(ARMA : Auto-Regressive and Moving Average Model)、 差分自回归移动平均模型 (ARIMA : Autoregressive Integrated Moving Average Model) 等。 0045 本领域技术人员应当理解, 虽然在上面的实施例中, 虚拟机的资源数据是 CPU 使 用率和内存使用率, 然而, 本发明并不局限于此。在本发明的其它一些实施例中, 虚拟机 的资源数据可以包括任何与虚拟机的资源使用有关的参数, 包括但不局限于以。
39、下的至少一 个 : CPU 使用率、 内存使用率、 活动会话数、 与数据库的连接数、 HTTP 服务器请求速率等。 0046 本领域技术人员应当理解, 虽然在上面的实施例中, 应用系统 Y 的性能数据仅包 括用于应用系统 Y 的虚拟机的资源数据, 然而, 本发明并不局限于此。在本发明的其它一些 实施例中, 除了用于应用系统Y的虚拟机的资源数据之外, 应用系统Y的性能数据还可以包 括其它与应用系统 Y 的性能数据, 例如应用系统 Y 的并发请求数和 / 或应用系统 Y 的请求 响应时间。 0047 在应用系统Y的性能数据包括用于应用系统Y的虚拟机的资源数据以及应用系统 Y 的并发请求数和 / 或。
40、应用系统 Y 的请求响应时间的情况下, 在前述步骤 S128 中, 计算设 备C可以根据第一种虚拟机的数量和第二种虚拟机的数量以及应用系统Y的并发请求数和 / 或应用系统 Y 的请求响应时间, 计算在当前用于应用系统 Y 的虚拟机的基础上满足应用 系统 Y 即将出现的工作负荷而需要改变的虚拟机数量。例如, 如果应用系统 Y 的并发请求 数大于预定的请求数阈值和 / 或应用系统 Y 的请求响应时间大于预定的响应时间阈值, 则 表明应用系统Y即将出现的工作负荷大于当前用于应用系统Y的虚拟机所能承担的工作负 荷, 从而不管第一种虚拟机的数量和第二种虚拟机的数量如何, 直接将在当前用于应用系 统Y的虚。
41、拟机的基础上满足应用系统Y即将出现的工作负荷而需要改变的虚拟机数量设置 为指定数量 ; 如果 (在应用系统Y的性能数据包括用于应用系统Y的虚拟机的资源数据和应 用系统 Y 的并发请求数的情况下) 应用系统 Y 的并发请求数小于预定的请求数阈值、(在应 用系统 Y 的性能数据包括用于应用系统 Y 的虚拟机的资源数据和应用系统 Y 的请求响应时 间的情况下) 应用系统 Y 的请求响应时间小于预定的响应时间阈值、 或者 (在应用系统 Y 的 性能数据包括用于应用系统Y的虚拟机的资源数据以及应用系统Y的并发请求数和应用系 统 Y 的请求响应时间的情况下) 应用系统 Y 的并发请求数小于预定的请求数阈值。
42、且应用系 统 Y 的请求响应时间小于预定的响应时间阈值, 则计算设备 C 根据第一种虚拟机的数量和 第二种虚拟机的数量, 计算在当前用于应用系统 Y 的虚拟机的基础上满足应用系统 Y 即将 出现的工作负荷而需要改变的虚拟机数量。 0048 本领域技术人员应当理解, 虽然在上面的实施例中, 计算在当前用于应用系统 Y 说 明 书 CN 104077189 A 10 7/8 页 11 的虚拟机的基础上满足应用系统 Y 即将出现的工作负荷而需要改变的虚拟机数量并根据 所计算的需要改变的虚拟机数量来向应用系统 Y 创建新的虚拟机或从当前用于应用系统 Y 的虚拟机中回收部分虚拟机不再用于应用系统 Y, 。
43、然而, 本发明并不局限于此。在本发明 的其它一些实施例中, 也可以计算在当前用于应用系统 Y 的虚拟机的基础上满足应用系统 Y 即将出现的工作负荷而需要改变的虚拟机中的资源 (例如但不局限于 CPU、 存储器、 IP 地 址、 存储设备、 服务器、 逻辑地址、 网络设备、 数据库软件、 网络应用服务器软件等) 并根据所 计算的需要改变的虚拟机中的资源来向用于应用系统 Y 的虚拟机增加资源或缩减用于应 用系统 Y 的虚拟机中的资源。这里, 需要改变的虚拟机数量和需要改变的虚拟机中的资源 都属于需要改变的虚拟机资源。 0049 现在参见图 2, 其示出了按照本发明一个实施例的用于资源分配的装置的示。
44、意图。 图 2 所示的装置可以安装在计算设备中, 并且利用软件、 硬件 (例如集成电路或 FPGA 等) 或 软硬件结合的方式来实现。 0050 如图 2 所示, 用于资源分配的装置 200 可以包括监测模块 210、 资源缩放模块 220 和部署模块230。 其中, 监测模块210用于周期或非周期地收集应用系统的用于表征其当前 性能状况的性能数据。资源缩放模块 220 用于基于所述应用系统的历史工作负荷或所收集 的性能数据, 确定在当前用于所述应用系统的虚拟机的基础上满足所述应用系统即将出现 的工作负荷而需要改变的虚拟机资源, 其中, 如果已经到达基于所述应用系统的历史工作 负荷执行所述确定。
45、的时间, 则基于所述应用系统的历史工作负荷执行所述确定, 否则基于 所收集的性能数据执行所述确定。部署模块 230 用于根据所确定的虚拟机资源, 调整用于 所述应用系统的虚拟机的数量或者硬件配置。 0051 在一种具体实现方式中, 装置 200 还可以包括负荷均衡模块 240, 用于以负荷均衡 的方式调度所述调整后的虚拟机来运行所述应用系统。 0052 在一种具体实现方式中, 所述虚拟机资源是虚拟机数量, 以及, 资源缩放模块 220 可以包括第一计算模块222和第二计算模块224。 其中, 第一计算模块222用于当基于所述 应用系统的历史工作负荷执行所述确定时, 根据所述应用系统的历史工作负。
46、荷, 预测所述 应用系统即将出现的工作负荷。第二计算模块 224 用于计算承担所计算的工作负荷所需的 虚拟机数量与当前用于所述应用系统的虚拟机数量之差, 作为在当前用于所述应用系统的 虚拟机的基础上满足所述应用系统即将出现的工作负荷而需要改变的虚拟机数量。 0053 在一种具体实现方式中, 所述虚拟机资源是虚拟机数量, 以及, 资源缩放模块 220 可以包括第三计算模块226和第四计算模块228。 其中, 第三计算模块226用于当基于所收 集的性能数据执行所述确定步骤时, 如果所述收集的性能数据包括表征用于所述应用系统 的各个虚拟机的资源使用情况的资源数据, 则根据用于所述应用系统的各个虚拟机。
47、的资源 数据, 计算当前用于所述应用系统的虚拟机中的第一种虚拟机的数量和第二种虚拟机的数 量, 其中, 所述第一种虚拟机的至少一个资源使用相关数据与其所允许的最大值的比值大 于指定的上限阈值, 以及, 所述第二种虚拟机的每一个资源使用相关数据与其所允许的最 大值的比值小于指定的下限阈值。第四计算模块 228 用于根据所述第一种虚拟机的数量和 所述第二种虚拟机的数量, 计算在当前用于所述应用系统的虚拟机的基础上满足所述应用 系统现有工作负荷而需要改变的虚拟机数量。 0054 在另一种具体实现方式中, 如果所述收集的性能数据还包括所述应用系统的并发 说 明 书 CN 104077189 A 11 。
48、8/8 页 12 请求数和 / 或所述应用系统的请求响应时间, 则第四计算模块 228 可以进一步用于 : 根据 所述第一种虚拟机的数量和所述第二种虚拟机的数量以及所述应用系统的并发请求数和 / 或所述应用系统的请求响应时间, 计算在当前用于所述应用系统的虚拟机的基础上满足所 述应用系统现有工作负荷而需要改变的虚拟机数量。 0055 在一种具体实现方式中, 所述虚拟机资源是虚拟机数量, 以及, 部署模块 230 可以 包括创建模块232和回收模块234。 其中, 创建模块232用于如果所述确定的虚拟机数量是 正数, 则向所述应用系统创建所述确定的虚拟机数量的虚拟机。回收模块 234 用于如果所。
49、 述确定的虚拟机数量是负数, 则从当前用于所述应用系统的虚拟机中回收部分虚拟机不再 用于所述应用系统, 其中所回收的虚拟机数量等于所述确定的虚拟机数量的绝对值。 0056 现在参见图 3, 其示出了按照本发明一个实施例的计算设备的示意图。如图 3 所 示, 计算设备 300 可以包括用于存储可执行指令的存储器 310 和处理器 320。其中, 处理器 320 根据存储器 310 所存储的可执行指令, 执行装置 200 的各个模块所执行的操作。 0057 本发明实施例还提供一种机器可读介质, 其上存储可执行指令, 当该可执行指令 被执行时, 使得机器实现处理器 320 的功能。 0058 本领域技术人员应当理解, 上面公开的各个实施例可以在不偏离发明实质的情况 下做出各种变形和修改。因此, 本发明的保护范围应当由所附的权利要求书来限定。 说 明 书 CN 104077189 A 12 1/2 页 13 图 1 说 明 书 附 图 CN 104077189 A 13 2/2 页 14 图 2 图 3 说 明 书 附 图 CN 104077189 A。