QEMU执行引擎除了缺省TCG即时翻译外,还支持硬件加速方案kvm[1]及HAXM[2]。硬件加速方案对操作系统、硬件体系结构的要求总结:

* Linux + [Intel VT-d | AMD-V | Cortex-A15]
可采用KVM
* Windows 7及以后 + [Intel VT-d]
可采用HAXM
* 其他Windows
未找到开源可控硬件加速方案

## KVM的性能接近本机

* 公司VirtualOpenSystems曾以双核Cortex-A15(1.2GHz)、1GB RAM为硬件环境测试某SDL图形化动画程序[3]。该程序以Native方式启动,启动时间瞬时完成,在之后运行过程中FPS稳定在43。该程序以QEMU-KVM方式启动后,9.02秒后完成渲染,FPS开始时为35,之后逐渐上升并稳定在42。在性能上,QEMU-KVM与Native相差不大。

* 根据16年某非专业测试,KVM x86能达到95%-98%的HOST性能[4]。

需要留意,以上两项实验的目标分别是KVM-ARM方案和KVM-x86方案。KVM-ARM与KVM-x86之间的性能差异各有优势[5]。

## KVM比TCG快很多

* 根据VirtualOpenSystems的测试结果[3],QEMU-TCG需55秒完成应用启动,启动完成后FPS稳定在3;QEMU-KVM 9秒完成应用启动,启动完成后FPS最终稳定在42。

## LLVM与QEMU

有工作将QEMU执行引擎由TCG替换成LLVM[6]。性能上LLVM比TCG慢很多,TCG方案启动MS-DOS需4s,而LLVM方案需80s(20倍差距);TCG方案启动Windows XP消耗75s,而LLVMf方案消耗45min。LLVM方案绝大多数时间消耗在代码翻译上。

不过采用LLVM作为执行引擎后端的优势在于,可与基于LLVM的程序分析工具对接,如KLEE symbolic execution工具[7]等。

[1. KVM wiki]: https://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine
[2. Intel HAXM]:  https://software.intel.com/en-us/articles/intel-hardware-accelerated-execution-manager-intel-haxm
[3. kvm-vs-tcg]: http://www.virtualopensystems.com/en/solutions/demos/kvm-vs-tcg-virtualized-guests/
[4. How fast is KVM]: https://forum.level1techs.com/t/how-fast-is-kvm-host-vs-virtual-machine-performance/110192
[5. ARM virtualization: performance and architectural implications]: http://www.cs.columbia.edu/~cdall/pubs/isca2016-dall.pdf
[6. Dynamically Translating x86 to LLVM using QEMU]: https://infoscience.epfl.ch/record/149975/files/x86-llvm-translator-chipounov_2.pdf
[7. KLEE LLVM Execution Engine]: https://klee.github.io/

QEMU虚拟化加速方案 - KVM相关推荐

  1. 云计算运营—03 KVM虚拟化技术方案介绍

    KVM虚拟化技术方案介绍 1.背景介绍 KVM(Kernel-based Virtual Machine) 开源全虚拟化方案 支持体系结构 x86(32位,64位).IA64.PowerPC.S390 ...

  2. 2020全球开源基础设施技术峰会分享 | 自研软硬一体化加速方案

    2020年全球开源基础设施技术峰会及PTG讨论,以线上的形式于10月19-30日举行. 本次线上峰会议程包括100多个主题演讲和讨论环节,参会人员来自100多个国家的30多个开源社区.涉及的开源项目包 ...

  3. 【重识云原生】计算第2.4节——主流虚拟化技术之KVM

    <重识云原生系列>专题索引: 第一章--不谋全局不足以谋一域 第二章计算第1节--计算虚拟化技术总述 第二章计算第2节--主流虚拟化技术之VMare ESXi 第二章计算第3节--主流虚拟 ...

  4. 虚拟化技术:KVM介绍及试用

    KVM介绍及试用 服务器虚拟化是云计算最核心的技术,而KVM是当前最主流的开源的服务器虚拟化技术.从Linux2.6.20起,KVM作为内核的一个模块 集成到Linux主要发行版本中.从技术架构(代码 ...

  5. Qemu虚拟化PowerPc

    由于工作需要,需要需要虚拟出一个PowerPc64的系统,在介绍之前,先Qemu.Kvm.vmWare.之前对这三者虚拟化特点并没有特别关注. 是否基于硬件平台 是否全虚拟化 与宿主主机CPU一致 性 ...

  6. 【虚拟化qemu】(一)--- qemu 虚拟化软件介绍与安装

    [虚拟化qemu](一)- qemu 虚拟化软件介绍与安装 本文主要用于记录关于 qemu 虚拟化软件的介绍和安装. 关于 qemu qemu(quick emulator)是一款可执行硬件虚拟化的( ...

  7. 带你走进虚拟化世界之kvm(转载)

    http://chuck.blog.51cto.com/10232880/1720953 带你走进虚拟化世界之kvm 2015-12-08 23:10:46 标签:云计算 虚拟化 kvm 原创作品,允 ...

  8. Linux 虚拟化网络技术 — KVM + Linux Bridge 的网络虚拟化解决方案

    目录 文章目录 目录 KVM 虚拟机应用 Linux Bridge + VLAN 实现网络隔离 TSG: Failed to restart network KVM 虚拟机应用 Linux Bridg ...

  9. 虚拟化概念和KVM简述

    文章目录 一: 虚拟化概念 1.1 虚拟化简述 1.2 虚拟化技术分类 1.3 虚拟化的优势 1.4 虚拟化的三种通用模型 1.5 虚拟机的特征 二:KVM概述 2.1. KVM 的简述 2.2KVM ...

最新文章

  1. mysql 相关命令
  2. 我们是否正在进入第四代人工智能?
  3. ES6笔记(4)-- Symbol类型
  4. mybatis 批量查询参数语句
  5. spring beans源码解读之--BeanFactory的注册
  6. Java 编程的动态性,第 5 部分: 动态转换类--转载
  7. SpringBoot入门教程(十)应用监控Actuator
  8. Android 项目框架
  9. Javascript、Dom、JQuery
  10. 设计资源类网站|日常必逛设计导航
  11. Asp.net主题(theme)和皮肤(skin)的使用
  12. 二叉树 的建立及遍历 过程
  13. java运用jsp_JSP:JAVA Bean在JSP中的运用
  14. linux磁盘空间满如何清理,linux磁盘空间不足怎么办,磁盘清理方法
  15. TypeScript瞎看看
  16. Centos服务器巡检报告
  17. 隐藏和isa :进化返祖以及白马非马(c++)
  18. 生物信息学习--nr/nt 数据库(总+子)构建
  19. 寒武纪上半年营收1.7亿扣非后亏7.6亿 招银减持套现超3亿
  20. 安全漏洞-报错页面泄露文件路径

热门文章

  1. 学习Scala: 初学者应该了解的知识
  2. Linux more和less
  3. JavaScript tab页
  4. HP LasterJet 3050驱动安装技巧,面向win7,8,8.1,10
  5. 训练caffe:registry.count(type) == 0 (1 vs. 0) Solver type Nesterov already registered
  6. [BZOJ1635][Usaco2007 Jan]Tallest Cow 最高的牛
  7. logback 配置详解
  8. HDU 4255 A Famous Grid 素数+BFS
  9. sharepoint 域认证的时候给用户一个友好的登陆界面
  10. spring boot 2.x 系列 —— spring boot 整合 kafka