性能优化远程桌面虚拟化主机

远程桌面虚拟主机 (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

注意

仅支持使用 Hyper-v 通过 SMB 3.0 上的远程存储进行 Hyper-v 的 VDI 方案对打开的文件进行重复数据删除优化。

内存

服务器内存使用情况由三个主要因素驱动:

  • 操作系统开销

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

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

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

因此,请务必提供足够的服务器内存来满足预期数量的来宾虚拟机所需的内存,并为服务器留出足够的内存量。

CPU

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

建议启用超线程,但要确保基于物理内核数而不是逻辑处理器数来计算超额订阅比率。 这可确保每个 CPU 的预期性能级别。

性能优化

Dynamic Memory

通过平衡内存在运行的虚拟机之间的分布情况,动态内存可以更有效地利用运行 Hyper-v 的服务器的内存资源。 可以在虚拟机之间动态分配内存,以响应其变化的工作负荷。

动态内存使你可以使用已有的资源增加虚拟机密度,而不会影响性能或可伸缩性。 这样可以更高效地使用昂贵的服务器硬件资源,从而可以更轻松地管理和降低成本。

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

分层存储

RD 虚拟化主机支持用于虚拟桌面池的分层存储。 集合中所有共用虚拟桌面共享的物理计算机可以使用小型、高性能的存储解决方案,如镜像固态驱动器 (SSD) 。 可以将共用虚拟桌面置于更昂贵的传统存储上,如 RAID 1 + 0。

物理计算机应放置在 SSD 上,因为共用虚拟机中的大部分读 i/o 都将进入管理操作系统。 因此,物理计算机使用的存储必须在每秒读取的 i/o 数上保持高得多。

此部署配置可确保经济高效地执行性能。 SSD 为较小的磁盘提供更高的性能 (~ 每个集合大约有 20 GB,具体取决于配置) 。 适用于共用虚拟机的传统存储 (RAID 1 + 0) 每个虚拟机使用约 3 GB。

CSV 缓存

Windows Server 2012 和更高版本中的故障转移群集在群集共享卷 (CSV) 上提供缓存。 这对于共用虚拟桌面集合非常有利,其中大多数读取 i/o 都来自管理操作系统。 CSV 缓存按几个数量级提供更高的性能,因为它会缓存一次读取的块并从系统内存中传递它们,从而减少 i/o。 有关 CSV 缓存的详细信息,请参阅 如何启用 Csv 缓存

共用虚拟机

默认情况下,在用户注销后,会将共用虚拟桌面回滚到处于纯洁状态,因此,在上次用户登录后对 Windows 操作系统所做的任何更改都将被放弃。

尽管可以禁用回滚,但它仍然是暂时性的情况,因为虚拟桌面模板的各种更新通常会重新创建共用虚拟机集合。

可以关闭依赖于持久性状态 Windows 功能和服务。 此外,还可以关闭主要用于非企业方案的服务。

在进行广泛的部署之前,应正确评估每个特定服务。 下面是需要考虑的一些初始事项:

服务 为什么?
自动更新 通过重新创建虚拟桌面模板来更新共用虚拟机。
脱机文件 虚拟桌面始终处于联机状态,并且已从网络上查看。
后台碎片整理 文件系统更改会在用户注销后被丢弃 (因为回滚到处于纯洁状态或重新创建虚拟桌面模板,这将导致重新创建所有共用虚拟桌面) 。
休眠或睡眠 VDI 没有此类概念
Bug 检查内存转储 没有适用于共用虚拟机的概念。 Bug 检查共用虚拟桌面将从处于纯洁状态开始。
WLAN 自动配置 没有用于 VDI 的 WiFi 设备接口
Windows Media Player 网络共享服务 以用户为中心的服务
家庭组提供程序 以用户为中心的服务
Internet 连接共享 以用户为中心的服务
Media Center 扩展服务 以用户为中心的服务

注意

此列表并不是完整列表,因为任何更改都将影响目标和方案。 有关详细信息,请参阅热关闭按下、立即获取 Windows 8 VDI 优化脚本,/pfe!

注意

默认情况下,Windows 8 中的 SuperFetch 处于启用状态。 它可识别 VDI,不应禁用。 SuperFetch 可以通过内存页共享进一步减少内存消耗,这对于 VDI 非常有利。 要运行 Windows 7 的共用虚拟机,应禁用 SuperFetch,但对于运行 Windows 7 的个人虚拟机,应将其保持打开状态。