论文部分内容阅读
云计算的成本效益和灵活性等特点使得越来越多的用户,通过租用虚拟机或者虚拟集群来运行他们的中小规模紧耦合并行应用。与其他类型的应用相比,紧耦合并行应用最显著的特征是进程或者线程之间需要密集的同步操作。然而,现有虚拟机管理器中的CPU调度器在制定调度决策时,并没有考虑虚拟机中并行应用的同步需求特征,从而严重影响了此类应用在云计算系统中的性能。同时,现有虚拟机间的通信机制并未充分考虑虚拟机之间的关系(例如,是否属于同一个虚拟集群,或者是否位于同一个物理机上),也给虚拟集群中并行应用的性能带来了负面作用。解决上述两个问题,需要从优化虚拟机管理器中的CPU调度方法以及优化虚拟机间的通信机制等两个方面开展以下三个研究工作。 第一,在云计算环境下,小规模并行应用通常运行在单个对称多处理虚拟机(即具有多个虚拟CPU的虚拟机)中。在这种场景下,虚拟机中的并行应用会面临锁持有者抢占或其他同步方面的问题。在虚拟机管理器中对虚拟机的虚拟CPU进行协同调度是缓解并行应用在虚拟化环境中性能降低的一种有效途径,国内外研究者也在此基础上相继提出了多种方法,例如,上海交通大学的研究者提出的混合调度方法。然而,现有方法在实施协同调度过程中,并没有关注并行虚拟机(指运行并行应用的虚拟机)之间的过度抢占问题;同时在实施协同调度后,也未关注并行虚拟机中所有虚拟CPU同时在线率低的问题。实际上,这两个问题也会给并行应用性能带来负面影响。为此,一种增强的混合调度方法通过缓解并行虚拟机中所有虚拟CPU同时在线率低的问题,来优化并行应用的性能。实验结果表明,增强的混合调度方法与现有混合调度方法相比能提升并行应用大约10%的性能。 第二,随着并行应用规模的增加,单个对称多处理虚拟机已不能满足并行应用对计算资源的需求。利用多个虚拟机组成虚拟集群来运行并行应用成为用户的一种新选择。然而,现有虚拟机管理器中的CPU调度优化方法主要关注的是如何缓解单个对称多处理虚拟机中并行应用的性能下降问题,它们在制定调度决策时并没有考虑同一虚拟集群中的虚拟机之间因为运行同一个并行应用而产生的同步需求。因此,如何优化虚拟集群中并行应用的性能成为了一个亟需要解决的问题。大量实验的结果表明,虚拟集群中虚拟机接收到的数据包数量与该虚拟机的同步需求之间存在着一个强的正相关性。也就是,虚拟集群中虚拟机接收到的数据包数量是虚拟机同步需求的一个有效指示器。在此基础上,一种同步感知的虚拟机调度方法通过帮助虚拟机管理器根据虚拟机的同步需求自主地制定虚拟机调度决策,实现了对虚拟集群中并行应用性能进行优化的目标。实验结果显示,同步感知的虚拟机调度方法与现有的协同调度方法相比,能对虚拟集群中的并行应用有大约38%的性能提升。 第三,虚拟集群中具有密集同步需求的并行应用进程之间需要通过网络传递大量数据和同步信息,因此,虚拟集群的网络性能会显著地影响并行应用的性能。现有虚拟集群通信性能优化的研究主要关注于域间通信(同一物理机上的虚拟机之间的通信),并且相关研究成果也较为成熟。一般来说,在云计算环境中,一个虚拟集群中的虚拟机有很大可能是分散在不同物理机上的,对于虚拟机之间的这种非域间通信,目前的研究仍然偏少。传统TCP/IP协议是为复杂多变的互联网设计的,而虚拟集群通常处于单个数据中心,网络环境要相对单一和简单。为此,一种面向虚拟集群的通信优化方法通过使用轻量级通信协议旁路TCP/IP协议,优化了虚拟机的非域间通信性能;同时,结合现有较为成熟的域间通信优化机制,提升了虚拟机的域间通信性能。实验结果表明,面向虚拟集群的通信优化方法与标准虚拟化环境下的默认通信方法相比,提升了并行应用大约17%的性能。 综上所述,通过对虚拟机管理器中的CPU调度以及虚拟机间的通信机制等两个方面的研究,形成了增强的混合调度、同步感知的虚拟机调度以及虚拟集群的通信性能优化等面向并行应用的虚拟计算环境性能优化方法,有效地保证了并行应用在虚拟化环境下的性能。