优化远程桌面会话主机的性能

本主题讨论如何选择远程桌面会话主机(RD 会话主机)硬件、如何优化主机以及如何优化应用程序。

本主题内容:

根据性能选择适当的硬件

对于 RD 会话主机服务器部署,硬件的选择由应用程序集和用户使用方式控制。 影响用户数量及其体验的关键因素是 CPU、内存、磁盘和图形。 本部分包含特定于 RD 会话主机服务器的其他准则,主要与 RD 会话主机服务器的多用户环境相关。

CPU 配置

从概念上来说,CPU 配置通过以下方式确定:支持会话所需的 CPU 乘以在维护一个缓冲区来处理临时峰值的同时系统预期支持的会话数。 多个逻辑处理器可帮助减少 CPU 异常拥塞的情况,这种情况通常是由类似数量的逻辑处理器包含的几个过度活跃的线程引起的。

因此,系统上的逻辑处理器越多,必须内置在 CPU 使用率估计中的缓冲余量就越低,这会导致每个 CPU 的活动负载百分比更大。 需要记住的一个重要因素是,CPU 数量增加一倍不会使 CPU 容量翻倍。

内存配置

内存配置依赖于用户使用的应用程序;但是,可使用以下公式估计所需的内存量:TotalMem = OSMem + SessionMem * NS

OSMem 是操作系统运行所需的内存量(例如系统二进制映像、数据结构等),SessionMem 是一个会话中运行的内存进程所需的内存量,而 NS 是活动会话的目标数目。 会话所需的内存量主要由会话中运行的应用程序和系统进程的专用内存引用集决定。 共享代码或数据页效果不大,因为系统上只有一个副本。

观察到的一个有趣现象是(假设备份页面文件的磁盘系统保持不变)系统计划支持的并发活动会话数量越大,每个会话的内存分配就必须越大。 如果每个会话分配的内存量没有增加,则活动会话生成的页面错误数随会话数量的增加而增加。 这些错误最终会使 I/O 子系统不堪重负。 通过增加每个会话分配的内存量,可降低发生页面错误的概率,这有助于降低页面错误的总体速率。

磁盘配置

存储是配置 RD 会话主机服务器时最容易被忽视的方面之一,在现场部署的系统中,存储可能是最常见的限制。

在典型的 RD 会话主机服务器上生成的磁盘活动会影响以下方面:

  • 系统文件和应用程序二进制文件

  • 页面文件

  • 用户配置文件和用户数据

理想情况下,这些区域应由不同的存储设备进行备份。 使用条带化 RAID 配置或其他类型的高性能存储可进一步提高性能。 强烈建议将存储适配器与电池支持的写入缓存配合使用。 具有磁盘写入缓存的控制器改进了对同步写入操作的支持。 由于所有用户都有单独的配置单元,因此同步写入操作在 RD 会话主机服务器上更为常见。 注册表配置单元使用同步写入操作定期保存到磁盘。 若要启用这些优化,请在磁盘管理控制台中打开目标磁盘的“属性”对话框,然后在“策略”选项卡上,选中“在磁盘上启用写入缓存”和“关闭设备上的 Windows 写入缓存缓冲区刷新”复选框。

网络配置

RD 会话主机服务器的网络使用情况包括下面两个主要类别:

  • RD 会话主机连接流量使用情况几乎完全由会话内运行的应用程序和重定向的设备 I/O 流量所显示的绘制模式确定。

    例如,处理文本处理和数据输入的应用程序消耗的带宽约为每秒 10-100 KB,而丰富的图形和视频播放会导致带宽使用量显著增加。

  • 后端连接,例如漫游配置文件、应用程序对文件共享的访问、数据库服务器、电子邮件服务器和 HTTP 服务器。

    网络流量的数量和配置文件特定于每个部署。

优化远程桌面会话主机的应用程序

RD 会话主机服务器上的大部分 CPU 使用率由应用驱动。 桌面应用通常针对响应能力进行优化,目的是最大程度地缩短应用程序响应用户请求所需的时间。 但是在服务器环境中,尽可能减少完成操作所需的总 CPU 使用率,以避免对其他会话产生不利影响,这一点同样重要。

配置将在 RD 会话主机服务器上使用的应用时,请考虑以下建议:

  • 最小化后台空闲循环处理

    典型示例包括禁用后台语法和拼写检查、搜索数据索引和后台保存。

  • 最大程度地减少应用执行状态检查或更新的频率。

    禁用此类行为或增加轮询迭代与计时器触发之间的时间间隔会显著提升 CPU 使用率,因为对于许多活动会话,此类活动的影响会迅速放大。 典型示例包括连接状态图标和状态栏信息更新。

  • 通过降低应用同步频率来最大程度地减少应用之间的资源争用。

    此类资源的示例包括注册表项和配置文件。 应用程序组件和功能的示例包括状态指示器(例如 shell 通知)、后台索引/更改监视以及脱机同步。

  • 禁用注册为随用户登录或会话启动而启动的不必要的进程。

    在创建新的用户会话时,这些进程可能会显著增加 CPU 使用成本,这通常是一个 CPU 密集型进程,早晨使用的话费用可能非常昂贵。 使用 MsConfig.exe 或 MsInfo32.exe 获取在用户登录时启动的进程列表。 有关更多详细信息,可使用 Autoruns for Windows

对于内存消耗,应考虑以下事项:

  • 验证应用加载的 DLL 是否未重定位。

    • 可通过使用进程资源管理器,选择“进程 DLL”视图来验证重定位的 DLL,如下图所示。

    • 在这里,我们可以看到 y.dll 已经重定位,因为 x.dll 已占用其默认基址,而 ASLR 未启用

      relocated dlls

      如果已重定位 DLL,则不可能跨会话共享其代码,这大大增加了会话的占用空间。 这是 RD 会话主机服务器上最常见的内存相关性能问题之一。

  • 对于公共语言运行时 (CLR) 应用程序,请使用本机映像生成器 (Ngen.exe) 来增加页面共享并减少 CPU 开销。

    如果可能,请对其他类似的执行引擎应用类似的技术。

远程桌面会话主机优化参数

页面文件

页面文件大小不足可能会导致应用或系统组件中的内存分配失败。 可使用“内存-提交的字节数”性能计数器来监视系统上已提交的虚拟内存量。

防病毒

在 RD 会话主机服务器上安装防病毒软件会极大地影响整体系统性能,尤其是 CPU 使用率。 强烈建议从活动监视列表中排除所有保存临时文件的文件夹,尤其是服务和其他系统组件生成的文件夹。

任务计划程序

通过任务计划程序,可检查为不同事件计划的任务列表。 对于 RD 会话主机服务器,专门关注配置为在空闲、用户登录或会话连接和断开连接时运行的任务非常有用。 由于部署的具体情况,其中许多任务可能是不必要的。

桌面通知图标

桌面上的通知图标可能具有相当昂贵的刷新机制。 应禁用任何通知,方法是从启动列表中移除注册通知的组件,或者更改应用和系统组件上的配置来禁用它们。 可使用“自定义通知”图标来检查服务器上可用的通知列表。

远程桌面协议数据压缩

可使用“计算机配置”>“管理模板”>“Windows 组件”>“远程桌面服务”>“远程桌面会话主机”>“远程会话环境”>“配置 RemoteFX 数据的压缩”下的组策略来配置远程桌面协议压缩。 可以有 3 个值:

  • 经过优化来减少内存使用量:每个会话消耗最少的内存量,但压缩率最低,因此带宽消耗最高。

  • 在内存和网络带宽之间达到均衡:减少了带宽消耗,同时略微增加内存消耗(每个会话大约 200 KB)。

  • 经过优化以使用更少的网络带宽:进一步减少网络带宽使用量,每个会话的成本约为 2 MB。 如果要使用此设置,应在将服务器置于生产环境之前,评估最大会话数并使用此设置测试直到达到该级别。

还可选择不使用远程桌面协议压缩算法,因此我们只建议将其与设计为优化网络流量的硬件设备配合使用。 即使选择不使用压缩算法,某些图形数据也会被压缩。

设备重定向

可使用“计算机配置”>“管理模板”>“Windows 组件”>“远程桌面服务”>“远程桌面会话主机”>“设备和资源重定向”下的组策略,或者使用服务器管理器中的“会话集合”属性框来配置设备重定向。

通常,设备重定向会增加 RD 会话主机服务器连接使用的网络带宽,因为会在客户端计算机上的设备和服务器会话中运行的进程之间交换数据。 增加多少取决于服务器上运行的应用程序针对重定向的设备执行操作的频率。

打印机重定向和即插即用设备重定向也会增加登录时的 CPU 使用率。 可通过两种方式重定向打印机:

  • 基于打印机驱动程序的匹配重定向(适用于必须在服务器上安装打印机驱动程序的情况)。 早期版本的 Windows Server 使用了此方法。

  • 轻松打印打印机驱动程序重定向,它在 Windows Server 2008 中引入,为所有打印机使用通用打印机驱动程序。

建议使用“轻松打印”方法,因为它在连接时可减少打印机安装的 CPU 使用率。 “匹配驱动程序”方法会导致 CPU 使用率增加,因为它需要后台处理程序服务来加载不同的驱动程序。 对于带宽使用,“轻松打印”会导致网络带宽使用量略有增加,但不足以抵消其他性能、可管理性和可靠性方面的优势。

音频重定向会使网络流量稳定传输。 音频重定向还使用户能够运行通常 CPU 使用率较高的多媒体应用。

客户端体验设置

默认情况下,远程桌面连接 (RDC) 会根据服务器和客户端计算机之间网络连接的适用性自动选择正确的体验设置。 建议 RDC 配置保持自动检测连接质量。

高级用户可通过 RDC 控制会影响远程桌面服务连接网络带宽性能的一系列设置。 可使用远程桌面连接中的“体验”选项卡或 RDP 文件中的设置来访问以下设置。

连接到任何计算机时,以下设置都适用:

  • 禁用壁纸 (Disable wallpaper:i:0):在重定向的连接上不显示桌面壁纸。 如果桌面壁纸由图像或其他绘制成本高昂的内容组成,此设置可显著减少带宽使用量。

  • 位图缓存 (Bitmapcachepersistenable:i:1):启用此设置后,它会创建会话中呈现的位图的客户端缓存。 它可显著改善带宽使用量,除非有其他安全注意事项,否则应始终启用它。

  • 在拖动时显示窗口内容 (Disable full window drag:i:1):启用此设置后,当拖动窗口时,它将仅显示窗口框架(而非所有内容)来减少带宽。

  • 菜单和窗口动画 (Disable menu anims:i:1 and Disable cursor setting:i:1):禁用这些设置后,它通过禁用菜单上的动画(例如淡出)和光标上的动画来减少带宽。

  • 字体平滑 (Allow font smoothing:i:0):控制 ClearType 字体呈现支持。 连接到运行 Windows 8 或 Windows Server 2012 及更高版本的计算机时,启用或禁用此设置不会对带宽使用率产生重大影响。 但是,对于运行低于 Windows 7 和 Windows 2008 R2 版本的计算机,启用此设置会显著影响网络带宽消耗。

以下设置仅在连接到运行 Windows 7 及更早操作系统版本的计算机时适用:

  • 桌面合成:此设置仅支持用于与运行 Windows 7 或 Windows Server 2008 R2 的计算机进行的远程会话。

  • 视觉样式 (disable themes:i:1):禁用此设置后,它通过简化使用经典主题的主题绘图来减少带宽。

通过使用远程桌面连接中的“体验”选项卡,可选择连接速度以影响网络带宽性能。 下面列出了可用于配置连接速度的选项:

  • 自动检测连接质量 (Connection type:i:7):启用此设置后,远程桌面连接会自动选择将基于连接质量提供最佳用户体验的设置。 (连接到运行 Windows 8 或 Windows Server 2012 及更高版本的计算机时,建议使用此配置)。

  • 调制解调器 (56 Kbps) (Connection type:i:1):此设置会启用永久性位图缓存。

  • 低速宽带 (256 Kbps - 2 Mbps) (Connection type:i:2):此设置会启用永久性位图缓存和视觉样式。

  • 手机网络/卫星(2Mbps - 16 Mbps,高延迟)(Connection type:i:3):此设置会启用桌面合成、永久性位图缓存、视觉样式和桌面背景。

  • 高速宽带 (2 Mbps - 10 Mbps) (Connection type:i:4):此设置会启用桌面合成,在拖动时显示窗口内容、菜单和窗口动画、永久性位图缓存、视觉样式和桌面背景。

  • WAN(10 Mbps 或更高,高延迟)(Connection type:i:5):此设置会启用桌面合成,在拖动时显示窗口内容、菜单和窗口动画、永久性位图缓存、视觉样式和桌面背景。

  • LAN(10 Mbps 或更高)(Connection type:i:6):此设置会启用桌面合成,在拖动时显示窗口内容、菜单和窗口动画、永久性位图缓存、主题和桌面背景。

桌面大小

可使用远程桌面连接中的“显示”选项卡,或者使用 RDP 配置文件(desktopwidth:i:1152 和 desktopheight:i:864)来控制远程会话的桌面大小。 桌面越大,与该会话关联的内存和带宽消耗越大。 当前桌面大小上限为 4096 x 2048。