Session Recording

会话录制数据丢失

事件的描述

会话录制 – 事件查看器中的事件 2005

管理员可能会在会话录制服务器的事件查看器中注意到来自 Citrix Session Recording Storage Manager 的事件 2005。事件消息通常显示为:

“Data lost while recording file: VDA = XXX, CtxSessionId = YYY, path = ZZZ, NNN bytes missing.”

如果管理员尝试播放位于事件中指定路径的录制文件,则播放会显示该录制是不完整的。

为什么会发生这种情况

此问题可能有以下几个原因:

  1. 两个或更多 VDA 配置了相同的 MSMQ QMID,这可能发生在持久性和非持久性 VDA 上。
  2. 非持久性 VDA 上的 QMID 在重启后保持不变,这可能导致冲突。
  3. 会话录制服务器正处于高负载状态,因此无法有效地处理大量并发会话。

如何确定问题所在

  1. 验证 VDA 上的 QMID 配置。
    1. 对于持久性 VDA
      1. 检查每台计算机上的注册表以验证 QMID 配置。 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters\MachineCache\QMId
      2. 每个 VDA 都应具有唯一的 QMID 值以避免冲突。
    2. 对于非持久性 VDA
      1. 检查 VDA 上的注册表以验证 QMID。
      2. 重启同一 VDA 后,再次检查注册表。
      3. 重启后 QMID 应该不同。
  2. 验证服务器是否处于高负载状态。
    1. 检查会话录制服务器上 MSMQ 属性中配置的存储限制。 dataloss
    2. 使用性能监视器监控 MSMQ 资源使用情况。
      1. 在性能监视器中添加 MSMQ 计数器以跟踪资源使用情况。 dataloss
      2. 验证 MSMQ 中的当前数据使用情况。 dataloss
      3. 检查 MSMQ 数据大小是否接近配置的配额限制。如果是,则服务器可能过载。

如何解决

以下各项概述了如何解决此问题。

  1. 所有使用会话录制代理的 VDA 都必须为 MSMQ 分配不同的 QMID。
    1. 对于持久性 VDA,MSMQ 的 QMID 只需设置一次。
    2. 对于非持久性 VDA,MSMQ 的 QMID 需要在 Windows 启动期间设置。
    3. 如何修改 VDA 上的 QMID
      1. 手动修改 QMID:安装、升级和卸载
      2. 自 CVAD 2511 以来,最新的 Citrix 预配服务 会在每次 VDA 启动时自动更新 MSMQ 的 QMID。创建计算机目录
      3. 图像优化工具或自定义脚本可用于在 Windows 启动期间为 MSMQ 生成新的 QMID。
    4. 此外,对于非持久性 VDA,请在 Windows 服务配置中将 会话录制代理服务 和 Citrix 会话录制监视器服务 的启动类型都设置为自动(延迟启动)。 dataloss
  2. 会话录制服务器过载。 会话录制服务器支持的会话容量可能因硬件配置而异。默认情况下,它可以处理多达 2,000 个并发会话。但是,如果服务器配备了超过 16 GB 的 RAM 和 SSD 存储,则容量可能会更高。

为帮助解决过载问题:

  1. 增加计算机上的主内存配额,然后提高 MSMQ 存储限制。

    确保总可用主内存至少是配置的 MSMQ 存储限制的 1.5 倍。

    注意:

    MSMQ 总存储限制应始终保持小于总物理内存。

    更改后,必须重新启动会话录制服务器上的 MSMQ。会话录制服务将因此自动重新启动。

    此过程不会导致任何会话数据丢失。

    1. 调整会话录制代理属性中的消息生存期。考虑将当前值加倍,以留出更多时间进行消息处理并降低数据丢失风险。

      数据丢失

      您可以通过 VDA 上的以下注册表项配置此设置:

      HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\SmartAuditor\Agent\MsmqMessageLifeInSeconds

      根据您的环境需求设置值(以秒为单位)。

      注意:

      进行更改后,必须重新启动会话录制代理。

      此操作将导致任何实时会话的会话数据丢失。

      请您务必确保,此项操作应当在系统维护窗口期间进行。

    2. 将所有会话录制服务器计算机上 MSMQ 的消息文件夹更改为具有超过 3000 磁盘(SSD) IOPS 容量的不同驱动器。

      这将有助于加快处理速度,并将性能提高多达 50%。

      数据丢失

      https://learn.microsoft.com/zh-cn/previous-versions/troubleshoot/msmq/optimize-message-queuing-performance

    3. 如果上述步骤无法解决问题,推荐的解决方案是添加一个额外的会话录制服务器以分担负载。

      有关指导,请参阅有关在现有部署中配置负载平衡的官方文档: Citrix 文档 – 配置负载平衡

会话录制数据丢失