论文部分内容阅读
随着对高性能计算资源的需求增长,使用云计算环境下的虚拟集群来运行紧耦合的并行应用变得越来越流行。然而在虚拟化环境下,会发生锁持有者被抢占问题。当虚拟机中占有锁的虚拟中央处理器(VCPU)被抢占后,会导致虚拟机内的其他VCPU一直处于忙等待状态,直到占有锁的VCPU重新被调度并且释放自旋锁。因此,锁持有者被抢占问题会造成并行应用在虚拟化环境下同步延迟显著增高,极大地影响了并行应用的性能,特别是在云计算环境中资源经常出现过载的情况下。由于各种各样类型的应用托管在虚拟化的云系统中,在有效提升并行应用性能的同时尽可能避免对非并行应用造成明显的性能损失是一项非常大的挑战。通过对虚拟化的云计算环境中并行应用性能损失问题分析发现,虚拟机的调度时间片是影响并行应用性能的重要因素。基于动态时间片的并行应用加速系统提供了一种虚拟化环境下基于动态时间片的VCPU调度策略。系统通过对虚拟机内核的自旋锁进行监控,在自旋锁操作发生忙等待时,采集相应的自旋锁延迟信息,然后通过通信模块把自旋锁延迟信息从虚拟机内核传输到虚拟机监视器(VMM)中;VMM中的自旋锁统计模块在接收到虚拟机内核传输来的自旋锁延迟信息之后,会对该自旋锁延迟信息按照虚拟机进行分类,并且进行统计;动态时间片控制模块接受来自自旋锁延迟统计模块的统计信息后,将对所有虚拟机进行自适应地动态时间片计算,由于每个虚拟机计算出来的时间片可能不同,所以,还需要对所有虚拟机的时间片进行统一,最终把统一后的时间片应用到虚拟机的调度流程中。系统通过动态地控制虚拟机调度时间片的大小,能有效地缩短虚拟机的自旋锁延迟,提升并行应用的同步效率,从而提升并行应用的性能。实验结果表明,相对于现有方案(包括传统时间片调度方案像Xen的Credit方案以及著名的并行应用性能加速方案像Co-scheduling和Balance),基于动态时间片的并行应用加速系统能获得1.5-10X的性能提升,并且对非并行应用几乎不造成明显地性能影响。