论文部分内容阅读
多处理机系统中引入虚拟化,会带来很大的优势——多处理机系统使得虚拟化技术能够应用更多原本可能会被浪费的处理器周期和计算资源,从而实现集中化计算和资源的动态分配,充分利用了系统资源,将性能提升到一个新的高度。但同时,多处理机系统中引入虚拟化之后,也引发了一些问题,锁持有者抢占问题就是其中之一。从设计上来说,自旋锁只能持有很短的时间。但如果一个虚拟机的某个VCPU被抢占的时候持有锁的话,这一点就不再成立——这个虚拟机的其他正在运行的VCPU有可能申请并等待这个锁的释放,这就导致了锁持有时间延长,大量处理器周期被浪费,极大地影响了性能和可扩展性。锁感知的多处理机VCPU调度系统提供了一种多处理机虚拟化环境下的VCPU调度策略。系统通过在虚拟机内核中监控自旋锁,对自旋锁进行精确计数,并基于计数结果,在Hypervisor(虚拟化环境的管理和监控系统)中采用一种高效公平的调度策略,有效解决了锁持有者抢占问题,提高了多处理机系统中虚拟机的性能。系统的锁监控模块从虚拟机内核中取得本虚拟机中的锁计数信息,并将其传递给位于中间层的通讯模块;通讯模块将得到的信息汇总,并对数据进行分类与映射,得到各个虚拟机中各个VCPU上的锁计数信息;Hypervisor调度层的VCPU控制模块读取锁计数信息,以做出VCPU控制决策;虚拟机中的统计模块从Guest OS内核中取得原始的锁状态信息数据,并将数据转变为可读的、分类的锁状态数据统计信息,打印到控制台上,或生成自旋锁统计的日志文件。功能测试的结果表明,系统能够正常运行,在运行过程中,调度VCPU时能够避免锁持有者抢占问题。性能分析主要是与原始的Xen系统及采用现有解决方案的系统比较IO密集型负载及CPU计算型负载运行时的性能。性能测试结果表明,相对于现有解决方案,系统运行IO密集型负载的性能提高约10%,运行CPU计算型负载的性能提高约5%。在运行这两种负载的过程中,自旋锁持有的平均时间和等待时间均大幅下降,相较于原始的Xen系统,对于IO密集型负载,下降幅度分别为28%和97%,对于CPU计算型负载,下降幅度分别为74%和99%。