多显示器支持
概述
Linux VDA 提供开箱即用的多显示器支持,每台显示器的默认分辨率为 2560×1600。标准 VDA 最多支持九台显示器,HDX™ 3D Pro VDA 最多支持四台显示器。
本文介绍如何为不同的显示器分辨率和布局配置 Linux VDA。
虚拟会话桌面
与 Windows VDA 类似,Linux VDA 具有多显示器虚拟桌面的概念。它基于所有显示器的边界矩形,而不是显示器的实际布局。因此,虚拟桌面的区域理论上可以大于客户端显示器所覆盖的区域。

虚拟会话桌面大小
虚拟会话桌面的原点是从所有显示器的边界矩形的左上角计算的。该点位于 X = 0,Y = 0,其中 X 和 Y 分别是水平轴和垂直轴。
虚拟会话桌面的宽度是所有显示器边界矩形从原点到右上角的水平距离(以像素为单位)。
同样,虚拟会话桌面的高度是所有显示器边界矩形从原点到左下角的垂直距离(以像素为单位)。
此计算之所以重要,是基于以下原因:
- 允许不同的客户端显示器布局
- 了解 Linux VDA 上的内存使用情况
允许不同的客户端显示器配置
了解各种客户端显示器配置的最大虚拟桌面大小,可让您配置 Linux VDA,使其在客户端显示器配置方面具有灵活性。
请考虑以下客户端显示器配置:

上图显示了一个开箱即用的双显示器配置,每个显示器的分辨率为 2560×1600。
现在,请考虑使用以下客户端显示器配置连接到同一 Linux VDA:

如果上图中的每个显示器分辨率均为 2560×1600,则开箱即用的多显示器配置参数将不足。最大高度太小,无法适应此显示器布局的虚拟会话桌面。为了适应此示例中的客户端显示器配置,您必须将 Linux VDA 虚拟桌面设置为 4160×2560 的大小。
为了在多显示器配置中获得最大的灵活性,请找到您要支持的所有显示器布局的最小边界矩形。对于具有两个 2560×1600 显示器的配置,可能的布局包括:
- 显示器 1 2560×1600 和 显示器 2 2560×1600
- 显示器 1 1600×2560 和 显示器 2 2560×1600
- 显示器 1 2560×1600 和 显示器 2 1600×2560
- 显示器 1 1600×2560 和 显示器 2 1600×2560
为了适应上述所有布局,您需要一个 5120×2560 的虚拟会话桌面。它是可以包含所有所需布局的最小边界矩形。
如果所有用户都只有一个采用典型横向布局的显示器,请将最大虚拟桌面大小设置为显示器的最高分辨率。

在此示例中,虚拟桌面需要设置为 2560×1600 的大小。由于默认配置为 5120×1600 和 2 个显示器,因此需要更改配置以优化单显示器部署的内存使用情况。
注意:
如果桌面在多显示器设置中以不正确的解析度显示,请调整 Citrix Workspace 应用程序上的每英寸点数 (DPI) 设置。有关详细信息,请参阅知识中心文章 CTX230017。
了解 Linux VDA 上的内存使用情况
了解虚拟桌面大小可让您计算每个 HDX 会话使用的内存量。此内存是会话开始时为每个会话的图形数据分配的内存。它在会话的整个生命周期内不会改变。虽然此内存不是会话使用的总内存量,但它是计算每个会话内存使用情况的最简单方法。
要计算分配给每个 HDX 会话的内存量,请使用以下公式:
M = X × Y × Z,
其中:
- M 是用于会话图形的内存量。
- X 是虚拟会话桌面的宽度。
- Y 是虚拟会话桌面的高度。
- Z 是 HDX 会话窗口的颜色深度。该值以字节而不是位为单位,因此 32 位颜色请使用 4。
注意:
X 服务器的颜色深度在会话生命周期内启动后无法更改 (从登录到断开连接/重新连接,直到注销)。因此,Linux VDA 始终将虚拟会话桌面分配为 32 位,并向下采样到会话请求的颜色深度。
例如,对于 1024×768 会话,使用的内存为:
1024 × 768 × 4 / 2^20 MB = 3 MB
了解内存使用情况对于提高每个 Linux VDA 上的会话密度很重要。
请考虑以下客户端显示器配置:
带有浪费内存的客户端显示器配置示例(/zh-cn/linux-virtual-delivery-agent/2511/media/example-client-monitor-configuration-with-wasted-memory.png)
如果每个显示器的分辨率为 2560×1600,为了适应此客户端显示器配置,虚拟会话桌面大小需要为 5120×3200。请注意,灰色区域未使用,并且相当于 16,384,000 (即 2560 x 1600 x 4) 字节的浪费内存。
Citrix® 多显示器配置参数
您可以通过使用以下配置参数来控制 Linux VDA 的多显示器功能:
-
MaxScreenNumParameter: HKEY_LOCAL_MACHINE/System/CurrentControlSet/Control/Citrix/Thinwire/MaxScreenNum
说明: 支持的显示器数量
Type: DWORD
默认值: 4
Maximum: 9 for standard VDA, 4 for HDX 3D Pro VDA
-
MaxFbWidthParameter: HKEY_LOCAL_MACHINE /System/CurrentControlSet/Control/Citrix/Thinwire/MaxFbWidth
描述: 虚拟会话桌面的最大宽度
Type: DWORD
默认值: 5,120
最大值: 16,384 (8,192 x 2)
-
MaxFbHeightParameter: HKEY_LOCAL_MACHINE /System/CurrentControlSet/Control/Citrix/Thinwire/MaxFbHeight
描述: 虚拟会话桌面的最大高度
Type: DWORD
默认值: 1,600
最大值: 16,384 (8,192 x 2)
更改 Linux VDA 多显示器配置
以下部分概述了如何在 Linux VDA 上启用、配置和禁用多显示器功能。
使用以下方法设置最大显示器数量:
sudo ctxreg create -k " HKEY_LOCAL_MACHINE \System\CurrentControlSet\Control\Citrix\Thinwire" -t "REG_DWORD" -v "MaxScreenNum" -d "NumMons" --force
<!--NeedCopy-->
其中 NumMons 是标准 VDA 的 1 到 9 之间的值,或 HDX 3D Pro VDA 的 1 到 4 之间的值。
使用以下方法设置虚拟会话桌面的最大宽度:
sudo ctxreg create -k " HKEY_LOCAL_MACHINE \System\CurrentControlSet\Control\Citrix\Thinwire" -t "REG_DWORD" -v "MaxFbWidth" -d " MaxWidth" --force
<!--NeedCopy-->
其中 MaxWidth 是一个介于 1,024 和 16,384 之间的值。
通过使用以下方法设置虚拟会话桌面的最大高度:
sudo ctxreg create -k " HKEY_LOCAL_MACHINE \System\CurrentControlSet\Control\Citrix\Thinwire" -t "REG_DWORD" -v "MaxFbHeight" -d " MaxHeight" --force
<!--NeedCopy-->
其中 MaxHeight 是一个介于 1,024 和 16,384 之间的值。