会话录制数据丢失

事件情况说明

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

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

“在录制文件时发生数据丢失。VDA 值为 XXX,CtxSessionId 值为 YYY,路径 值为 ZZZ,NNN 字节缺失。”

如果管理员尝试播放事件中指定路径处的录制文件,则播放结果将指示该录制不完整。

为什么会发生这种情况

导致此问题的原因可能有以下几种:

  1. 两个或更多 VDA 配置了相同的 MSMQ QMID,这可能发生在持久性 VDA 和非持久性 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:安装、升级和卸载 会话录制 2503
      2. 最新的 Citrix 预配服务自 CVAD 2511 以来,会在每次 VDA 启动时自动更新 MSMQ 的 QMID。创建计算机目录
      3. 可以在Windows启动期间使用映像优化工具或自定义脚本为MSMQ生成新的QMID。
    4. 此外,对于非持久性 VDA,请在 Windows 服务配置中将 会话录制代理服务 和 Citrix 会话录制监视器服务 的启动类型都设置为自动(延迟启动)。 dataloss
  2. Session Recording Server过载。 Session Recording Server支持的会话容量可能因硬件配置而异。默认情况下,它可以处理多达2,000个并发会话。但是,如果服务器配备了超过16 GB的RAM和SSD存储,则容量可以更高。 为帮助解决过载问题:

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

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

      注意:

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

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

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

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

      数据丢失

      您可以通过 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 文档 – 配置负载平衡

会话录制数据丢失