会话录制数据丢失
事件情况说明
会话录制 – 事件查看器中的事件 2005
管理员可能会在会话录制服务器的事件查看器中注意到来自 Citrix Session Recording Storage Manager 的事件 2005。事件消息通常显示为:
“在录制文件时发生数据丢失。VDA 值为 XXX,CtxSessionId 值为 YYY,路径 值为 ZZZ,NNN 字节缺失。”
如果管理员尝试播放事件中指定路径处的录制文件,则播放结果将指示该录制不完整。
为什么会发生这种情况
导致此问题的原因可能有以下几种:
- 两个或更多 VDA 配置了相同的 MSMQ QMID,这可能发生在持久性 VDA 和非持久性 VDA 上。
- 非持久性 VDA 上的 QMID 在重启后保持不变,这可能导致冲突。
- 会话录制服务器正承受着巨大的负载,并且无法高效地处理大量的并发会话。
如何识别此问题
- 验证 VDA 上的 QMID 配置。
- 对于持久性 VDA
- 检查每台计算机上的注册表以验证 QMID 配置。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters\MachineCache\QMId - 每个 VDA 都应具有唯一的 QMID 值,以避免冲突。
- 检查每台计算机上的注册表以验证 QMID 配置。
- 对于非持久性 VDA
- 检查 VDA 上的注册表以验证 QMID。
- 重启同一 VDA 后,再次检查注册表。
- 重启后 QMID 应该不同。
- 对于持久性 VDA
- 验证服务器是否处于高负载状态。
- 检查会话录制服务器上 MSMQ 属性中配置的存储限制。
- 使用性能监视器监视 MSMQ 资源使用情况。
- 在性能监视器中添加 MSMQ 计数器以跟踪资源使用情况。
- 验证 MSMQ 中的当前数据使用情况。
- 检查 MSMQ 数据大小是否接近配置的配额限制。如果是,则服务器可能过载。
- 在性能监视器中添加 MSMQ 计数器以跟踪资源使用情况。
- 检查会话录制服务器上 MSMQ 属性中配置的存储限制。
如何解决
以下各项概述了如何解决此问题。
- 所有使用会话录制代理的 VDA 都必须为 MSMQ 分配不同的 QMID。
- 对于持久性 VDA,MSMQ 的 QMID 只需设置一次。
- 对于非持久性VDA,MSMQ的QMID需要在Windows启动期间设置
- 如何在VDA上修改QMID
-
手动修改 QMID:安装、升级和卸载 会话录制 2503 - 最新的 Citrix 预配服务自 CVAD 2511 以来,会在每次 VDA 启动时自动更新 MSMQ 的 QMID。创建计算机目录
- 可以在Windows启动期间使用映像优化工具或自定义脚本为MSMQ生成新的QMID。
-
- 此外,对于非持久性 VDA,请在 Windows 服务配置中将 会话录制代理服务 和 Citrix 会话录制监视器服务 的启动类型都设置为自动(延迟启动)。
-
Session Recording Server过载。 Session Recording Server支持的会话容量可能因硬件配置而异。默认情况下,它可以处理多达2,000个并发会话。但是,如果服务器配备了超过16 GB的RAM和SSD存储,则容量可以更高。 为帮助解决过载问题:
-
增加计算机上的主内存配额,然后提高MSMQ存储限制。
确保总可用主内存至少是配置的MSMQ存储限制的1.5倍。
注意:
MSMQ 的总存储限制应始终小于总物理内存。
进行更改后,必须重新启动会话录制服务器上的 MSMQ。会话录制服务将因此自动重新启动。
此过程不会导致任何会话数据丢失。
-
调整Session Recording Agent属性中的消息生存期。考虑将当前值加倍,以留出更多时间进行消息处理并降低数据丢失风险。

您可以通过 VDA 上的以下注册表项配置此设置:
HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\SmartAuditor\Agent\MsmqMessageLifeInSeconds根据您的环境需求设置值(以秒为单位)。
注意:
进行更改后,必须重新启动会话录制代理。
此操作将导致任何实时会话的会话数据丢失。
请务必确保此操作安排在维护窗口期内执行。
-
将所有会话录制服务器计算机上 MSMQ 的消息文件夹更改为具有超过 3000 IOPS 容量的磁盘(SSD)的不同驱动器。
这将有助于加快处理速度,并将性能提高多达 50%。

https://learn.microsoft.com/zh-cn/previous-versions/troubleshoot/msmq/optimize-message-queuing-performance
-
如果上述步骤无法解决问题,建议的解决方案是添加额外的会话录制服务器以分担负载。
有关指导,请参阅有关在现有部署中配置负载平衡的官方文档: Citrix 文档 – 配置负载平衡
-