虚拟机陷出的检测及分析

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

*The National Natural Science Foundation of China under Grant No. 90718028, 60873052 (国家自然科学基金); the National Grand Basic Research 973 Program of China under Grant No. 2007CB310900 (国家重点基础研究发展规划(973)); the National High-Tech Research and Development of China under Grant No. 2008AA01Z112 (国家高技术研究发展计划(863)); the MOE-Intel Information Technology Foundation under Grant No. MOE-INTEL-10-06 (教育部-英特尔信息技术专项科研基金). Received 2010-09, Accepted 2010-11.

ISSN 1673-9418 CODEN JKYTA8 E-mail: fcst@ Journal of Frontiers of Computer Science and Technology

1673-9418/2011/05(06)-0493-08 Tel: +86-10-51616056

DOI: 10.3778/j.issn.1673-9418.2011.06.002

虚拟机陷出的检测及分析*

汪小林1, 张彬彬1, 靳辛欣1, 王振林2, 罗英伟1+, 李晓明1

1. 北京大学 信息科学技术学院, 北京 100871

2. 密西根理工大学 计算机系, 美国 密西根州 49931-1295

Detection and Analysis of Virtual Machine Exits *

WANG Xiaolin 1, ZHANG Binbin 1, JIN Xinxin 1, WANG Zhenlin 2, LUO Yingwei 1+, LI Xiaoming 1

1. School of Electronics Engineering and Computer Science, Peking University, Beijing 100871, China

2. Department of Computer Science, Michigan Technological University, Michigan 49931-1295, USA + Corresponding author: E-mail: lyw@

WANG Xiaolin, ZHANG Binbin, JIN Xinxin, et al. Detection and analysis of virtual machine exits. Journal of Frontiers of Computer Science and Technology, 2011, 5(6): 493-500.

Abstract: It’s essential to learn about sensitive instructions that cause virtual machine (VM) to exit to the virtual machine monitor (VMM) to find new ways to optimize the performance of VM. This paper proposes a novel method, competition in bucket method (CBM), to track all VM exits efficiently, by mapping sensitive instructions to buckets according to instruction addresses, and find out hot instructions in each bucket.

Key words: virtualization; virtual machine monitor (VMM); hot instructions; virtual machine exits; competition in bucket method (CBM)

摘 要:虚拟机执行敏感指令时会陷出到虚拟机管理器(virtual machine monitor, VMM)处理, 虚拟机频繁陷出是影响虚拟化性能的重要因素, 因此全面了解导致陷出的敏感指令对虚拟化性能优化有重要意义。提出了一个创新性的方法“桶竞争法”(competition in bucket method, CBM), 通过把敏感指令的地址映射到不同

494 Journal of Frontiers of Computer Science and Technology计算机科学与探索 2011,

5(6)

的桶中, 采用竞争方式在各个桶内寻找陷出次数最多的几个地址, 能高效地跟踪所有的虚拟机陷出。

关键词:虚拟化; 虚拟机管理器(VMM); 热指令; 虚拟机陷出; 桶竞争法(CBM)

文献标识码:A 中图分类号:TP311

1引言

Intel和AMD都分别提供了硬件辅助虚拟化技术——VT(virtualization technology)和SVM(security virtual machine), 可以支持X86结构的全虚拟化[1−4]。Intel的VT为虚拟化提供了两种虚拟机执行(virtual machine execution,VMX)模式:VMX root模式和VMX non-root模式。虚拟机管理器(virtual machine monitor,VMM)运行在root模式, 而客户操作系统(guest operating system, guest OS)运行在non-root模式。系统控制权从VMM进入到guest OS叫作“虚拟机陷入”; 反之, 从guest OS进入到VMM叫作“虚拟机陷出”。大多数虚拟机的陷出是由于guest OS执行敏感指令所引起的。当VMM完成模拟指令操作之后, 系统将切换回non-root模式, 控制权也转交给guest OS。

利用硬件的扩展来辅助实现VMM的功能, 无需改动guest OS或依赖于二进制翻译。但是迄今为止, 无论是VT还是SVM都没有对内存管理单元(memory management unit, MMU)和I/O设备提供有效的支持。使用VT或SVM技术的VMM的性能仍然不尽人意,经常落后于使用二进制翻译的VMM[5]。造成这种现象的一个主要原因是大量的虚拟机陷出带来了很多额外的系统开销。在VT-x的全虚拟化环境下, 分别在KVM-54[6]和Xen-3.2.1[7]上运行一组典型的基准测试程序, 并统计虚拟机陷出的总次数以及由于I/O和缺页中断所引起的陷出次数, 结果如表1所示。可以看到, 由I/O陷出和缺页中断引起的虚拟机陷出占了相当大的比例(超过56%), 因此如果能够减少这两种类型的虚拟机陷出, 就能够大大减少全虚拟化的系统开销。

表1说明了不同类型的应用程序产生不同的虚拟机陷出模式。本文提出了一种高效的方法用于在线跟踪虚拟机陷出, 能够捕获到大部分最热的陷出, 然后进一步对它们进行相应的优化[8], 这种捕获陷出的方法称为桶竞争法(competition in bucket method, CBM)。对于每个虚拟机陷出, 可以用O(1)的时间对它进行计数。在程序运行的任意时刻, 用O(K)的时间就可以得到K个最热的虚拟机陷出。

本文对CBM进行了具体的论述:第2章介绍了如何用桶竞争法跟踪虚拟机陷出; 第3章分析了CBM的两个主要特点; 第4章对CBM的效果进行了测试和分析; 第5章为总结。

2 利用CBM跟踪虚拟机陷出

一般说来, 存在着两种虚拟机陷出:外部中断(包括非屏蔽中断)引起的虚拟机陷出和敏感指令(如特权指令和引起异常的指令)引起的虚拟机陷出。

人们所关注的是敏感指令引起的陷出。能通过

Table 1 Count and reason of VM exits

表1虚拟机陷出的个数和原因

KVM Xen Page fault I/O Page fault I/O

Program

Count VM exits

/(%)

Count

VM exits

/(%)

Total

Count

VM exits

/(%)

Count

VM exits

/(%)

Total

Kernel Compile 7.4E6 83.36 7.6E5 8.59 8.9E6 1.1E781.23 1.2E6 9.03 1.3E7 SpecJBB 3.5E5 2.99

6.5E6 59.57

1.1E7 3.5E5 4.22 5.0E6 59.89 8.3E6

SpecCPU 3.4E7 18.69

1.0E8 55.98

1.8E8 1.1E850.41 5.6E7 24.90

2.2E8

SpecWeb 5.6E6 15.50

1.4E7 40.79

3.6E7 1.1E731.46 1.2E7 33.04 3.7E7

相关文档
最新文档