远程桌面虚拟化主机性能调整

远程桌面虚拟化主机(RD 虚拟化主机)是一种角色服务,此服务支持虚拟桌面基础架构 (VDI) 方案,并允许多个用户在运行 Windows Server 和 Hyper-V 的服务器上托管的虚拟机中运行基于 Windows 的应用程序。

Windows Server 支持两种类型的虚拟桌面:个人虚拟桌面和池化虚拟桌面。

一般注意事项

存储

存储最有可能成为性能瓶颈,因此调整存储大小以正确处理虚拟机状态更改所产生的 I/O 负载非常重要。 如果试验或模拟不可行,一种可行的指导原则是为四个活跃虚拟机预配一个磁盘轴。 使用具有良好写性能的磁盘配置(如 RAID 1+0)。

在适当的时候,使用磁盘重复数据删除和缓存来减少磁盘读取负载,并使你的存储解决方案能够通过缓存映像的重要部分来提高性能。

重复数据删除和 VDI

在 Windows Server 2012 R2 中引入的重复数据删除支持优化打开的文件。 要使用在经过重复数据删除的卷上运行的虚拟机,虚拟机文件需要与 Hyper-V 主机分开存储在不同的主机上。 如果 Hyper-V 和重复数据删除在同一台计算机上运行,这两项功能将争用系统资源并对整体性能产生负面影响。

还必须将卷配置为使用“虚拟桌面基础架构 (VDI)”重复数据删除优化类型。 你可以使用服务器管理器(“文件和存储服务”->“卷”->“重复数据删除设置”)或使用以下 Windows PowerShell 命令进行配置:

Enable-DedupVolume <volume> -UsageType HyperV

注意

打开文件的重复数据删除优化仅支持 VDI 方案,这些方案具有通过 SMB 3.0 使用远程存储的 Hyper-V。

内存

服务器内存使用主要取决于三个因素:

  • 操作系统开销

  • 每个虚拟机的 Hyper-V 服务开销

  • 分配给每个虚拟机的内存

对于典型的知识工作者工作负载,应为运行 x86 Windows 8 或 Windows 8.1 的来宾虚拟机分配大约 512 MB 的内存,以此作为基准。 但是,动态内存可能会将来宾虚拟机的内存增加到大约 800 MB,具体取决于工作负载。 对于 x64,我们看到从大约 800MB 开始,增加到 1024MB.

因此,提供足够的服务器内存以满足预期数量的来宾虚拟机所需的内存,并为服务器提供足够的内存量,这一点非常重要。

CPU

当你为 RD 虚拟化主机服务器规划服务器容量时,每个物理核心的虚拟机数量将取决于工作负载的性质。 作为起点,合理的做法是为每个物理核心规划 12 个虚拟机,然后运行适当的场景来验证性能和密度。 根据工作负载的具体情况,可以实现更高的密度。

我们建议启用超线程,但请确保在计算超额预订率时是根据物理内核数量,而不是逻辑处理器数量。 这可确保基于 CPU 来满足预期性能级别。

性能优化

Dynamic Memory

动态内存通过平衡内存在运行的虚拟机之间的分配方式,可以更有效地利用运行 Hyper-V 的服务器的内存资源。 可以在虚拟机之间动态地重新分配内存,以响应其不断变化的工作负载。

动态内存使你能够在不牺牲性能或可扩展性的情况下,利用现有资源增加虚拟机密度。 其结果是可以更高效地使用昂贵的服务器硬件资源,从而简化管理并降低成本。

在运行 Windows 8 及更高版本且虚拟处理器跨越多个逻辑处理器的来宾操作系统上,请考虑在使用动态内存运行以帮助最大限度地减少内存使用和禁用动态内存以提高计算机拓扑感知的应用程序的性能之间进行权衡。 这样的应用程序可以利用拓扑信息来做出调度和内存分配决策。

分层存储

RD 虚拟化主机支持虚拟机池的分层存储。 集合内所有池化虚拟桌面共享的物理计算机可以使用小型高性能存储解决方案,如镜像固态驱动器 (SSD)。 可以将池化的虚拟桌面安装在成本较低的传统存储器上,如 RAID1+0。

物理计算机应安装在 SSD 上,因为来自池化虚拟桌面的大多数读取 I/O 都会进入管理操作系统。 因此,物理计算机使用的存储必须保持更高的每秒读 I/O 数。

此部署配置可在需要性能时确保经济高效的性能。 SSD 在较小的磁盘上提供更高的性能(每个集合约 20 GB,具体取决于配置)。 池化虚拟桌面的传统存储 (RAID 1+0) 每个虚拟机使用大约 3GB.

CSV 缓存

Windows Server 2012 及更高版本中的故障转移群集在群集共享卷 (CSV) 上提供缓存。 这对于大部分读取 I/O 来自管理操作系统的池化虚拟桌面集合来说极为有利。 CSV 缓存可将性能提高几个数量级,因为它可以缓存多次读取的块,并从系统内存中提供这些块,从而减少 I/O。 有关 CSV 缓存的更多信息,请参阅如何启用 CSV 缓存

池化虚拟桌面

默认情况下,在用户注销后,池化虚拟桌面将回滚到原始状态,因此,自上次用户登录以来对 Windows 操作系统所做的任何更改都将被放弃。

尽管可以禁用回滚,但这仍然是一种临时情况,因为通常会由于对虚拟桌面模板的各种更新而重新创建池虚拟桌面集合。

关闭依赖于持久状态的 Windows 功能和服务是有意义的。 此外,关闭主要用于非企业场景的服务也是有意义的。

在进行任何广泛部署之前,应对每项特定服务进行适当评估。 以下是需要考虑的一些初步事项:

服务 为什么?
自动更新 池化虚拟桌面是通过重新创建虚拟桌面模板进行更新的。
脱机文件 从网络角度来看,虚拟桌面始终处于联机和连接状态。
后台碎片整理 用户注销后,文件系统更改将被丢弃(由于回滚到原始状态或重新创建虚拟桌面模板,这将导致重新创建所有池化虚拟桌面)。
休眠或睡眠 VDI 没有这样的概念
Bug 检查内存转储 池化虚拟桌面没有这样的概念。 Bug 检查池化虚拟桌面将从原始状态开始。
WLAN 自动配置 VDI 没有 WiFi 设备接口
Windows Media Player 网络共享服务 以消费者为中心的服务
家庭组提供程序 以消费者为中心的服务
Internet 连接共享 以消费者为中心的服务
媒体中心扩展服务 以消费者为中心的服务

注意

此列表并不是一个完整的列表,因为任何更改都会影响预期的目标和场景。 欲了解更多信息,请参阅最新发布,立即获取,Windows 8 VDI 优化脚本,由 PFE 提供!

注意

默认情况下,Windows 8 中的 SuperFetch 已启用。 SuperFetch 支持 VDI,不应被禁用。 SuperFetch 可以通过内存页共享进一步减少内存消耗,这对于 VDI 是有利的。 对于运行 Windows 7 的池化虚拟桌面,应禁用 SuperFetch,但对于运行 Windows 7 的个人虚拟桌面,应保持其开启状态。