Windows Server 2012 R2、Windows Server 2016 和 Windows Server 2019 中的新 WMI 仲裁行为

本文介绍 Windows Server 2012 R2、Windows Server 2016 和 Windows Server 2019 中的新 WMI 仲裁行为。

适用于:Windows Server 2019、Windows Server 2016、Windows Server 2012 R2
原始 KB 编号: 4096063

摘要

本文介绍 Windows Management Instrumentation (WMI) 2018 年 3 月 20 日针对 Windows Server 2016 和 Windows Server 2012 R2 的累积更新中引入的仲裁者的行为。

更多信息

仲裁程序是实现以下功能的重要 WMI 组件:

  • 存储客户端提交的查询的详细信息。 详细信息包括查询文本、提交时间、用户名、客户端 PID 和内存使用情况。
  • 计划任务以运行查询。
  • 存储客户端等待检索结果时提供程序返回的结果。
  • 当使用的内存总量达到 256 MB 的阈值时,限制查询执行。

有关详细信息,请参阅Windows Server 2012 R2 和Windows Server 2016累积更新的更新历史记录。

在实现新功能之前,如果客户端不检索结果,查询可能会使用大量内存导致 WMI 中的死锁情况。 在这种情况下,如果违规查询导致总内存使用率达到 256 MB 的阈值,则所有其他查询都会受到限制, (在内存压力降低之前不执行) 。 但是,如果客户端无法检索数据,则在 WMI 或计算机重新启动之前无法解决此情况。

此更改实现一种机制,用于取消使用大量内存的 WMI 请求(如果检测到客户端长时间未处于活动状态,或者达到仲裁的内存阈值)。

应用场景

以下是两种可能的方案:

  • 检测到客户端的空闲时间超过注册表值 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Wbem\CIMOM\ArbTaskMaxIdle中指定的时间。 默认值为 1200000 毫秒 (20 分钟) 。

    取消任务后,WMI 活动/操作日志中记录了事件 ID 5858,其原因可能是“限制空闲任务,请参阅 CIMOM regkey: ArbTaskMaxIdle”。

  • 仲裁缓冲区中的累积内存使用量达到 256 MB 阈值。

    WMI 服务将启动清理过程,以取消在 Winmgmt 中保存内存的查询、枚举或 ESS 任务/请求。 发生此清理时,WMI 活动/操作日志中记录了事件 ID 5858,其原因可能是“限制空闲/堆栈任务达到最大内存配额”。

数据收集

如果需要 Microsoft 支持方面的帮助,建议按照 使用 TSS 收集用户体验问题中的信息中所述的步骤收集信息。