前一阵子在使用陈沙克老师的博客安装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_CTRL

AMD CPU 
PERF_CTLx 
PERF_CTRx

vmware官网上有关于vmware的“虚拟化cpu性能计数器”功能的详细介绍。

禁用二进制转换加速

vmware workstation 的官方帮助文档是这样说明的:

在个别情况下,您可能会发现在虚拟机中安装或运行软件时,Workstation Pro呈现出冻结状态。这个问题通常出现在程序执行初期。在很多情况下,在虚拟机中临时禁用加速功能即可避免此问题。当程序度过问题多发阶段后,可取消选中该设置。 

最新文章

  1. Unity 播放 视频
  2. (DP)MaxSubArr
  3. iOS app的webview注入JS遇到的坑
  4. C#编程让Outlook乖乖交出帐户密码
  5. Jquery使用tbody编辑功能实现table输入计算功能
  6. PHP环境出现时区问题
  7. 让微信二维码扫描你的APK
  8. iBatis的一个问题
  9. 完全理解 Python 迭代对象、迭代器、生成器(转)
  10. python中的包与模块
  11. 单击列表行前边的checkbox被选中,再单击,取消选中
  12. 删除 nuget 文件夹内容
  13. Spring任务调度实战之Quartz Simple Trigger(转)
  14. #Python学习笔记:1-3章 (基于《python编程,从入门到实践)
  15. ActiveMQ面试专题
  16. [PHP] 深入理解PHP内核:变量及数据类型
  17. 快速安装Docker
  18. 如何把word ppt 思维导图这类文件转化为高清晰度的图片(要干货只看粗体黑字)
  19. android中的数据库操作(SQLite)
  20. zebra/quagga线程分析

热门文章

  1. 【MATLAB】matlabR2010a与vs2010联合编译设置
  2. 自动化部署必备技能—搭建YUM仓库
  3. C语言学习笔记 (006) - 二维数组传参的三种表现形式
  4. 恢复oracle中用PLSQL误删除drop掉的表
  5. is-a,has-a,like-a是什么 sql server中,N''表示什么意思? 关于SQL SERVER的N前缀的理解
  6. mysql-1045(28000)错误
  7. (面试题)synchronized 和 java.util.concurrent.locks.Lock 的异同
  8. 【python】pycharm常用配置快速入门。
  9. 【剑道】日常练习相关Q&A 整理
  10. redis 3.2.3的源码安装