优化的虚拟环境对采用英特尔® 虚拟化技术的平台的性能影响

提交新文章

2008年09月16日 05:22


目录

概述

在英特尔,我们经常在采用英特尔® 虚拟化技术的平台上评测虚拟环境部署场景。因为这些测试有助于我们开发一些宝贵技巧,来优化虚拟环境中的各种工作负载。我们在白皮书《在支持英特尔® 虚拟化技术的平台上优化虚拟环境》中概述了这些技术,您可以访问英特尔网站下载该白皮书。

完全虚拟化工作负载的性能目标是实现与本机性能尽可能接近的性能。所谓“本机性能”是指在非虚拟化环境中,在相同的系统配置上运行相同的工作负载,所测得的结果即为本机性能。通常,运行于虚拟环境中的服务器与运行于非虚拟环境中的服务器之间会存在性能差异。性能差异主要来自对虚拟环境的管理,同时也受其它因素的影响。

本文论述的性能基准测试结果显示了我们的优化技巧如何帮助用户将虚拟性能与本机性能之间的差距降至最低。性能基准测试基于使用 Xen* 虚拟机管理器(VMM)的 SUSE Linux Enterprise Server* 10 主机与支持英特尔® 虚拟化技术的平台上的 Linux 和 Microsoft Windows* 客户机。

性能基准测试

我们分别在如下三种不同的环境中进行了测试:

测试环境 1:运行于 IA32pae(物理地址扩展) SUSE Linux Enterprise Server 10 主机上的一台 IA32 SUSE Linux Enterprise Server 10 虚拟机客户机。我们在 SysBench 和 SPECjbb 两项测试中,将完全虚拟化的 Linux* 客户机的性能与本机性能进行了比较。

测试环境 2:运行于 IA32e SUSE Linux Enterprise Server 10 主机上的一台 Windows* 2003 SP1 x32 虚拟机客户机。我们使用 SPECjbb 将完全虚拟化的 Windows 客户机的性能与本机性能进行了比较。

测试环境 3:运行于 IA32pae SUSE Linux Enterprise Server 10 主机上的一台 Windows* 2003 SP1 x32 虚拟机客户机。通过使用 SQL Server 工作负载及运行 SysBench,我们将完全虚拟化的 Windows 客户机的性能与本机性能进行了比较。

性能基准测试套件阐述

SPECjbb

SPECjbb 是一个模拟三层系统构建的 Java* 程序,其重点在于中间层。随机输入选择代表第一层用户界面,SPECjbb 完全执行中间层业务逻辑,第三层数据库由二进制树形网络替代。

SPECjbb 的创作灵感来自 TPC-C 基准测试,且其设计规划、输入信息生成和运作配置均大致符合 TPC-C 规范。SPECjbb 采用 Java 类取代数据库表,并采用 Java 对象取代数据记录。Java 对象保存在二进制树(也称“Java 对象”)或其它数据对象中。SPECjbb 运行于单台 JVM 上,JVM 中的线程代表数据仓库的终端。在调用具体交易业务逻辑前,每条线程都会独立生成随机输入信息(第 1 层模拟)。业务逻辑在二进制树中保存的数据上进行操作(第 3 层模拟)。本性能基准测试中不会进行任何磁盘 I/O 或网络 I/O 操作。

测量单位为每秒操作次数(值越大越好)。SPECjbb 操作次数/秒是一个复合吞吐率测量结果,代表一系列数值的平均吞吐率。如欲了解更多信息,请访问:www.spec.org/jbb2005 www.spec.org/jbb2000 

SysBench

SysBench 是一款跨平台的模块化多线程基准测试工具,主要用于评估 OS 参数。这些参数对运行密集型负载数据库的系统至关重要。本基准测试套件旨在使用户无需设置复杂的数据库基准测试,即可快速了解系统性能。

测试模式

CPU:CPU 测试模式是 SysBench 套件中最简单的一种基准测试。在该模式中,每个请求都是由质数计算组成的,质数上限为 CPU-max-primes 选项中规定的数值。所有计算均采用 64 位整数进行。每条线程并行执行请求,直到总请求数或总执行时间超出常见命令行选项中规定的阀值。

线程:本测试模式用于评测调度程序的性能,尤其是在拥有大量线程的调度程序争夺一套互斥体的情况下。

互斥体:本基准测试的目的是评测互斥体的实施性能。本测试模式模仿了这样一个情景:大多数时间所有线程都是同时运行的,只有少数时间获取互斥体锁。

内存:本测试模式用于评测连续内存读取或写入性能。根据命令行选项的不同,每条线程可访问一个全局或本地模块来完成所有内存操作。

Fileio:本测试模式主要生成各种文件 I/O 工作负载。在准备阶段,SysBench 会创建一系列文件,这些文件的总体尺寸是特定的。随后在运行阶段,每条线程都会在上述系列文件中执行一些特定的 I/O 操作。

OLTP:本测试模式用于评测数据库的真实性能。

SysBench 创建了数目特定的线程和互斥体。随后,每条线程开始运行由锁定互斥体组成的请求并生成 CPU,这样线程就能被调度程序置入运行队列;锁定互斥体会在线程重新被调度返回执行状态时解锁。针对每个请求,上述操作将循环运行几次,执行的迭代越多,单个互斥体中的并发现象也会越多。

测量单位为每项测试的执行次数(值越小越好)。如欲了解更多信息,请访问:http://sysbench. sourceforge.net/docs/  

术语

本机:性能结果指在非虚拟系统上运行工作负载所测得的结果。

VMX:性能结果指在采用英特尔® 虚拟化技术的完全虚拟化的客户机上运行工作负载所测得的结果。

VMX/本机:性能百分比,表示完全虚拟化与本机性能之间的距离。

物理地址扩展(PAE):处理器的一项特性,允许在 32 位系统中使用多达 64 GB 的内存(假定有适当操作系统支持)。

注:在每个图表中,1 或 100% 表示本机环境中相同配置系统的性能。


性能基准测试结果

测试环境 1

表 1 列出了该环境中的系统配置。

表 1.测试环境 1 配置

CPU

英特尔® 至强® 处理器 5100(3 Ghz)

客户机操作系统

SUSE Linux Enterprise Server 10

Hypervisor

Xen 3.0.2(在 SUSE Linux Enterprise Server 10 中集成)

本机操作系统

SUSE Linux Enterprise Server 10

客户机内存

512 MB

本机内存

512 MB

SysBench 结果

SysBench

CPU

线程

互斥体

内存

Fileio

OLTP

本机

45.31

115.66

32.6

44.4

40.95

132.25

VMX

45.71

121.45

33.45

45

76.74

178.23

VMX/本机

99.12%

95.22%

97.46%

98.67%

53.37%

74.20%


SPECjbb 结果

SPECjbb

吞吐量

本机

54970

VMX

48506

VMX/本机

88.24%

 

测试环境 2 – SPECjbb 结果:SPECjbb2005

表 2 列出了该环境中的系统配置。

表 2. 测试环境 2 配置

CPU

英特尔® 至强® 处理器 5100(3 Ghz)

客户机操作系统

Microsoft Windows* 2003 SP1

Hypervisor

Xen 3.0.2(在 SUSE Linux* Enterprise Server 10 中集成)

本机操作系统

SUSE Linux Enterprise Server 10


SPECjbb2005

本机 Win2003 SP1 X32

VMX Win2003 SP1 X32

VMX/本机

Run1

25171

23951

0.951531624

Run2

25267

23895

0.945699925

Run3

25372

23999

0.945885228

 

测试环境 3 – SysBench 结果:SQL Server 2005 OLTP

表 3 列出了该环境中的系统配置。

表 3. 测试环境 3 配置

CPU

英特尔® 至强® 处理器 5100(3 Ghz)

客户机操作系统

Microsoft Windows* 2003 SP1

Hypervisor

Xen 3.0.2(在 SUSE Linux* Enterprise Server 10 中集成)

本机操作系统

SUSE Linux Enterprise Server 10


 

SysBench

本机 Win2003 SP1 X32

VMX Win2003 SP1 X32

VMX/本机

Run1

270.27

170.94

0.632478632

Run2

284.9

173.61

0.609371709

Run3

271.72

172.12

0.626528829

 

总结

缩小虚拟性能与本机性能之间的差距,能为您的虚拟系统提供更多资源来运行您的工作负载。运用良好的优化技巧可以尽可能地缩小这一差距。我们的测试实验室工程师历经多项性能基准测试的开发,引入了多种优化技巧,可提供本文性能基准测试中显示的虚拟化性能提升。

在您的操作环境中,由于运行的具体工作负载可能会对您的测试有所影响,因此您的结果可能会与上述结果有所不同。通常,非办公系统上的实验会进一步优化您的具体环境。而且,您的 VMM 开发人员也可能在优化方面有一些额外的宝贵建议,请参考开发人员网站查看此类信息。