上一期博客我们介绍了PVS新的缓存保存技术:Cache in RAM with Hard Disk Overflow。如果你还不清楚什么是“Cache in RAM with Hard Disk Overflow”,可以去访问一下上篇博客的文章:

http://virtualworld.blog.51cto.com/1412963/1441543

这一篇博文将主要围绕着一些非常具体的测试数据和用户实测数据来给大家带来更具体的体验。此外,具体如何配置这个Cache的参数也会是今天这篇文章讨论的重点。

IOPS概览

在开始讨论具体的测试数据之前,我们首先有必要了解一下一个VM启动到底需要多少个IOPS。如果在一块SATA硬盘上,一个VM可能需要2分钟,平均消耗200IOPS来完成启动过程;可是如果把这个VM放到SSD固态硬盘上,可能启动时间就只需要15秒了,这个时候IOPS的消耗却道到了1600 IOPS。看到这里你可能会问我,虚拟机启动到底需要多少个IOPS,答案是需要大概24000IO操作。但是随着底层存储介质的不同,每秒钟的IO读写次数却随时变化。

由于XenAppWindows VDI的工作负荷是完全不同的,所以我们会分为两个部分来分别讨论,首先从大家最熟悉的Windows VDI来看看吧。

Windows 7XenDesktop VDI

在测试环境中,我们启用了PVS的这个新特性,然后运行了三个不同的场景。然后在整个这三个场景中我们都是用了LoginVSI测试平台来进行性能的测试。LoginVSI采用了中等负荷作为测试基线。

为了对比,我们首先来看看MCS模式需要消耗多少资源吧。下面是一些关于测试环境其他参数的说明:

基线:在Hyper-V 2012 R2平台上的MCS 方式发布的Windows 7 VDI

  • 四核CPU32G内存,Hyper-V平台;

  • 一块专用的7200SATA 3硬盘(带64M缓存),用户存放Windows 7虚拟机;

  • Windows 7 X64虚拟机配置:2 vCPU2.5G内存

  • 用户配置文件和文件夹重定向都配置正常并优化到配置文件小于10M

下面是MCS方式的启动IOPS数字:

虚拟机数量

启动持续时间

全部IO读写

每虚拟机IOPS

每虚拟机
读IOPS

每虚拟机写IOPS

读写比例

1

2分钟

每虚拟机24921

213

184

29

86% / 14%

5

6分钟

每虚拟机25272

70

60

10

86% / 14%

如上表所示,无论是启动一个虚拟机还是五个虚拟机,每个虚拟机为启动所需要消耗的IO读写次数是差不多的。采用5个虚拟机测试是因为传统的Windows 7的虚拟机在一块SATA硬盘上启动在可以接受的性能范围之内最多也就只能支撑到5个。此外,启动的过程并不是仅仅是只看到Ctrl-Alt-Del登录画面,而是进入Windows系统后大部分的服务已经完全启动,VM已经注册到XenDesktopDDC服务器才算启动完毕。

下一个测试就是看看VM启动之后,在应用程序启动阶段的消耗情况。这个阶段包括登录以及几个应用程序的启动过程。

虚拟机数量

登录持续时间

全部IO读写

每虚拟机IOPS

每虚拟机
读IOPS

每虚拟机写IOPS

读写比例

1

25

每虚拟机
4390

175

103

72

59% / 41%

5

90

每虚拟机
4249

48

23

25

48% / 52%

和启动过程类似,无论是一个虚拟机还是五个虚拟机IO读写的次数都是基本一样的。

最后的测试看看稳定状态下的MCS模式需要多少个IOPS开销。

虚拟机数量

会话持续时间

全部IO读写

每虚拟机IOPS

每虚拟机
读IOPS

每虚拟机写IOPS

读写比例

1

45分钟

每虚拟机
22713

8.5

3

5.5

35% / 65%

5

45分钟

每虚拟机
20009

7.5

2

5.5

27% / 73%

稳定状态下的IOPS数值是大家最感兴趣的,也是我们在有大批量VM部署的时候需要调优的优先考虑因素。这么说并不是说我们就不重视启动时后的IOPS要求,实际上启动的过程在一个VM整天的开机周期中只是一个非常小的时间段。只要规划合理,大部分VDI桌面的VM都可以设计在晚上或者是上班前的那一段时间启动。除此之外,只要我们合理的规划和设计用户的个性化文件夹,也能把登录的过程降低到一个非常短的过程,这也能显著减少整个IO读写的次数。

好了,到这里我们已经对一个标准的Windows 7操作系统的桌面需要消耗多少个IOPS有了一个清晰的认识,接下去就让我们看看PVS 7.1中的新缓存技术的表现。