前一陣子在使用陳沙克老師的博客安裝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呈現出凍結狀態。這個問題通常出現在程序執行初期。在很多情況下,在虛擬機中臨時禁用加速功能即可避免此問題。當程序度過問題多發階段后,可取消選中該設置。