在 Windows Server 2012 R2、 Windows 服务器 2016 和 Windows 服务器 2019年新 WMI 仲裁程序行为

适用于: Windows Server 2019, all editionsWindows Server 2016Windows Server 2016 Datacenter

摘要


本文介绍了在引入了 2018 3 月 20,累积更新为 Windows 服务器 2016年和 Windows Server 2012 R2 的 Windows 管理规范 (WMI) 仲裁程序的行为。

更多信息


仲裁是一个重要的 WMI 组件,实现了以下功能:

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

有关详细信息,请参阅更新历史记录的累积更新Windows Server 2012 r2Windows 服务器 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 服务将开始取消查询、 枚举或 ESS 任务/请求在 Winmgmt 安装内存清理过程。 事件 ID 5858 尽可能 WMI-活动/运营日志中记录此清除操作时,导致"带宽限制达到最大内存配额中的空闲/堆栈任务"。