虚拟机数量上的调整,一方面使得启动的虚拟机可以至少运行一定时间,减少实例小时的浪费,另一方面对本小时提供一个比较大的基础计算能力;在粗粒度横向扩容基础之上,还可以进行分钟粒度的快速响应的纵向扩容,负责处理当前运行的虚拟机实例池不能处理的突发的负载,基于横向扩容之上的纵向扩容,可扩展性得到增强,应用性能监控要作出哪些考量?
1、考量扩容后影响(兼容性)
基于混合式自动扩容检测与调度算法,整个自动扩容方案可以设计为性能数据准备,未来负载的预测,扩容量的量化,扩容的检测与调度,扩容动作的执行。自动扩容是一个周期性的工作,它包含了周期性的性能监控和周期性的扩容检测与调度,而在周期性的扩容检测与调度中,在一定条件下还会进行未来负载预测、扩容量的量化、扩容动作的执行。
2、考量数据问题性能
数据准备环节不断地监控云环境中的应用,收集原始的性能指标,然后按照扩容算法的需求对不同的指标进行不同时间粒度的统计和聚合。扩容算法主体部分利用扩容量数据、预测数据以及不同的子扩容算法进行合理的检测和调度,当需要进行资源调整时就将扩容需求传递给扩容动作执行器。扩容动作会转换成对底层云基础设施资源的重新分配,一般是由固定管理平台完成。其中,扩容量的量化和扩容的检测与调度这两个环节,解决了应用性能监控中的两个主要问题:如何确定合适的扩容量,何时进行何种扩容。
虚拟机数量和单一资源量的改变量关系到了扩容方案是否准确,扩容量的推算需要对应用的性能进行监控、统计分析、建模,进而量化对应当前需求应该分配的资源量。而扩容的应用性能监控与调度环节则体现了本文的核心“混合时间粒度和空间粒度的扩容算法”,扩容算法包含了如何检测扩容时机,如何调度预测式横向扩容和反应式纵向扩容等。准确的扩容量与合理调度的扩容算法,是准确高效的自动扩容方案的关键设计环节。