● 摘要
龙芯3服务器是一款基于龙芯3号处理器设计的国产高性能服务器,在硬件方面具有多核架构、高性能、低功耗、低成本等特点。虚拟化技术作为云计算技术的基础,是高性能服务器领域的一个重要的研究与发展方向。因此,在龙芯3号服务器上实现系统虚拟化技术将有助于其在服务器领域的长远发展。KVM/Loongson-3A是由中科院和北航共同研发的龙芯3服务器多核虚拟化系统,该系统支持多核虚拟机,可以比较充分地利用处理器的多核硬件资源。然而,该系统目前还并不完善,虚拟机的运行效率比较低。因此,龙芯3服务器多核虚拟化系统的进一步优化和完善成为当前面临的主要问题。
本论文在对现有龙芯3多核虚拟化系统的性能瓶颈和功能缺陷进行分析的基础之上,以降低虚拟化开销、提高虚拟化系统性能为目标,研究并实现了龙芯3服务器上多核虚拟化的优化技术,主要研究内容和取得的成果如下:
1) 基于龙芯3多核虚拟机的特权指令优化技术:针对龙芯3多核虚拟机中客户机特权指令执行的特点,本论文通过虚拟特权资源共享、多核特权资源识别以及客户机特权指令替换,使得客户机可直接访问虚拟特权资源,从而显著地减少了客户机上因执行特权指令所引起的异常。通过该优化方法,客户机上特权指令的执行次数降低了90%以上,客户机启动时间缩短了约45%,客户机的整体运算能力提升了30~40%。
2) 基于影子TLB的地址映射缓存技术:针对龙芯3多核虚拟化系统上基于影子TLB的内存虚拟化方法,本论文通过在VMM(Virtual Machine Monitor)中的地址缺失异常处理函数中添加地址映射缓存模块,达到了降低建立地址映射开销的目的。通过该优化方法,VMM中地址缺失异常处理程序的平均处理时间减少了40%左右。
3) 基于宿主机时钟计数器的时钟模拟方法:针对龙芯3虚拟化系统中客户机时钟对宿主机时钟的严重依赖性,本论文通过充分利用宿主机上准确的时钟计数器,为客户机实现了一套可自定义的时钟机制。通过该优化方法,客户机使用者可以根据需要自主地对客户机的时钟进行设置。
通过对上述3个方面的研究,本论文将三种优化技术在龙芯3服务器多核虚拟化系统KVM/Loongson-3A上进行了实现和测试。测试结果表明,前两种优化技术有效地提高了虚拟化系统的性能,第三种优化技术也为客户机提供了更加灵活实用的时钟机制。