会话录制数据丢失

事件的描述

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

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

“在录制文件过程中发生了数据丢失:VDA = XXX,CtxSessionId = YYY,路径 = ZZZ,有 NNN 字节的数据缺失。”

如果管理员尝试播放事件中指定路径处的录制文件,则在播放过程中,系统将提示该录制文件不完整

为什么会发生这种情况

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

  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。会话录制服务将因此自动重新启动。

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

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

      数据丢失

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

      HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\SmartAuditor\Agent\MsmqMessageLifeInSeconds

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

      注意:

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

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

      请务必确保此操作安排在维护窗口期内进行。

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

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

      数据丢失

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

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

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

会话录制数据丢失