前一阵子在使用陈沙克老师的博客安装devstack的时候就有一个疑问:
使用vmware创建虚拟机时,硬件选项里有关于虚拟化引擎的选项到底都代表了什么意思?
Intel VT-x/EPT和AMD-V/RVI(V)
当时Google查了一下,在IBM虚拟化漫谈一文中这样介绍Intel VT-x/EPT技术:
硬件辅助虚拟化(Hardware-Assisted Virtualization)
硬件辅助虚拟化是指借助硬件(主要是主机处理器)的支持来实现高效的全虚拟化。例如有了 Intel-VT 技术的支持,Guest OS 和 VMM 的执行环境自动地完全隔离开来,Guest OS 有自己的“全套寄存器”,可以直接运行在*别。因此在上面的例子中,Guest OS 能够执行修改页表的汇编指令。Intel-VT 和 AMD-V 是目前 x86 体系结构上可用的两种硬件辅助虚拟化技术。
看完之后只是觉得Intel VT-x/EPT和AMD-V/RVI(V)应该是cpu硬件虚拟化技术,但是对概念和具体作用依旧很模糊,今天看openstack实战公开课的时候讲师小小提了一下,再结合自己私下查阅的资料,现整理如下:
- Intel VT-X技术实现的功能是减少虚拟机运行时虚拟机和物理机得到双重系统调用所产生的高Context Switch。也就是说,虚拟机的进程在要先从虚拟机ring3转到ring0,再从物理机的ring3转到ring0,性能有很大损失,而Intel VT-X就是为了解决这一问题而产生的技术。
- Intel RPT技术则是为了解决虚拟机的虚拟内存映射问题。虚拟机的虚拟内存要映射到虚拟机的物理内存上面,而虚拟机的物理内存相当于物理机的虚拟内存,物理机的虚拟内存也是要映射到物理机的物理内存上面的,所以这双重转换会造成很大的资源消耗,RPT技术就是减小这个消耗的。
- AMD实现的功能和Intel的功能类似
虚拟化cpu性能计数器
CPU 性能监控计数器 (PMC) 为软件提供了一种监控和衡量处理器性能的方法。这些计数器通常由诸如软件探查器等工具使用。从具有 ESX 5.1 及更高版本兼容性(硬件软件 9)的虚拟机开始,可以启用虚拟性能监控计数器 (vPMC) 功能以允许在虚拟机中运行的软件访问此性能信息,如在物理机中运行一样。
启用虚拟 CPU 性能监控计数器后,以下 MSR 会虚拟化并可用于客户机操作系统。
Intel CPU
IA32_PERFEVTSELx
IA32_PMCx IA32_FIXED_CTRx
IA32_PERF_GLOBAL_CTRL
IA32_PERF_GLOBAL_STATUS
IA32_PERF_GLOBAL_OVF_CTRL
IA32_FIXED_CTR_CTRLAMD CPU
PERF_CTLx
PERF_CTRx
vmware官网上有关于vmware的“虚拟化cpu性能计数器”功能的详细介绍。
禁用二进制转换加速
vmware workstation 的官方帮助文档是这样说明的:
在个别情况下,您可能会发现在虚拟机中安装或运行软件时,Workstation Pro呈现出冻结状态。这个问题通常出现在程序执行初期。在很多情况下,在虚拟机中临时禁用加速功能即可避免此问题。当程序度过问题多发阶段后,可取消选中该设置。