排查 Operations Manager 中与事件 ID 2115 相关的性能问题

本文可帮助你识别并排查影响 Operations Manager (OpsMgr) 数据库和数据仓库数据插入时间的性能问题。 它适用于所有受支持的 System Center Operations Manager 版本

原始产品版本: System Center Operations Manager
原始 KB 编号: 2681388

Operations Manager 数据库性能问题的一个典型迹象是 Operations Manager 事件日志中存在事件 ID 2115 事件。 这些事件通常指示管理服务器或运行 Microsoft SQL Server且托管 Operations Manager 或 Operations Manager 数据仓库数据库的服务器上存在性能问题。

背景

数据库和数据仓库写入操作工作流在管理服务器上运行。 这些工作流首先保留从内部缓冲区中的代理和网关服务器接收的数据。 然后,从内部缓冲区收集此数据,并将其插入数据库和数据仓库。 完成第一个数据插入后,工作流会创建另一个批处理。

每批数据的大小取决于创建批处理时缓冲区中可用的数据量。 但是,一批中最多限制为 5,000 个数据项。 如果传入数据项的速率增加,或者如果向 Operation Manager 和数据仓库数据库插入数据项的吞吐量降低,则缓冲区将累积更多数据,并且批大小增加。

在管理服务器上运行多个写入操作工作流。 例如,以下工作流处理不同数据类型的数据插入到 Operations Manager 和数据仓库数据库:

  • Microsoft.SystemCenter.DataWarehouse.CollectEntityHealthStateChange
  • Microsoft.SystemCenter.DataWarehouse.CollectPerformanceData
  • Microsoft.SystemCenter.DataWarehouse.CollectEventData
  • Microsoft.SystemCenter.CollectAlerts
  • Microsoft.SystemCenter.CollectEntityState
  • Microsoft.SystemCenter.CollectPublishedEntityState
  • Microsoft.SystemCenter.CollectDiscoveryData
  • Microsoft.SystemCenter.CollectSignatureData
  • Microsoft.SystemCenter.CollectEventData

例如,当管理服务器上的数据库或数据仓库写入操作工作流遇到数据批处理插入速度缓慢 (超过 60 秒) 时,工作流开始将事件 ID 2115 记录到 Operations Manager 事件日志中。 此事件每隔一分钟记录一次,直到数据批处理插入数据库或数据仓库,或者写入操作工作流模块删除数据。 因此,会记录事件 ID 2115,因为在将数据插入数据库或数据仓库期间发生的延迟。 下面是由于写入操作工作流模块删除数据而记录的事件示例:

事件类型:错误
事件源:HealthService
事件类别:无
事件 ID:4506
计算机: <RMS 名称>
说明:
由于管理组 <MANAGEMENT GROUP NAME> 中 ID 为<>“{F56EB161-4ABE-5BC7-610F-4365524F294E}”运行的规则“Microsoft.SystemCenter.OperationalDataReporting.SubmitOperationalDataFailed.Alert”中存在过多未完成的数据,因此删除了数据。

更深入地了解

事件 ID 2115 包含两个重要信息:

  • 遇到问题的工作流的名称
  • 自工作流开始插入最后一批数据以来的运行时间

例如:

日志名称:Operations Manager
源:HealthService
事件 ID:2115
级别:警告
计算机: <RMS 名称>
说明:
管理组 <管理组名称> 中的绑定数据源已将项发布到工作流,但在 300 秒内未收到响应。 这表示工作流存在性能或功能问题。
工作流 ID:Microsoft.SystemCenter.CollectPublishedEntityState
实例: <RMS 名称>
实例 ID: {88676CDF-E284-7838-AC70-E898DA1720CB}

工作流 Microsoft.SystemCenter.CollectPublishedEntityState 将实体状态数据写入 Operations Manager 数据库。 事件 ID 2115 消息指示 Microsoft.SystemCenter.CollectPublishedEntityState 工作流正在尝试插入一批实体状态数据,并且它已于 300 秒前启动。 在此示例中,实体状态数据的插入未完成。 通常,一批数据的插入应在 60 秒内完成。

如果工作流 ID 包含术语 DataWarehouse,则问题涉及 Operations Manager 数据仓库数据库。 否则,问题涉及将数据插入 Operations Manager 数据库中。

原因

以下任何问题都可能导致此类问题。

插入问题

此问题可能表示存在数据库性能问题,或者代理发送的数据过多。 事件 ID 2115 说明仅指示存在影响将数据插入数据库 (Operations Manager 或 Operations Manager 数据仓库) 的积压工作。 发生这些事件的原因有很多。 例如,可能会突然出现大量发现数据。 或者,可能存在数据库连接问题。 或者,数据库可能已满。 或者,可能存在与磁盘相关的或与网络相关的约束。

在 Operations Manager 中,发现数据插入是一个相对劳动密集型的过程。 它也可能以突发形式出现,其中管理服务器正在接收大量数据。 这些突发可能会导致事件 ID 2115 的临时实例,但如果事件 ID 2115 一直出现在发现数据收集中,则表明数据库或数据仓库插入问题或管理包中的发现规则收集过多的发现数据。

实例空间更改或管理包导入导致的 Operations Manager 配置更新直接影响数据库服务器上的 CPU 使用率。 这可能会影响数据库插入时间。 管理包导入或大型实例空间更改后,预期会看到事件 ID 2115 消息。 有关详细信息,请参阅 在 Operations Manager 中检测频繁的配置更改并对其进行故障排除

在 Operations Manager 中,昂贵的用户界面查询也会影响数据库的资源利用率,从而导致数据库插入时间延迟。 当用户执行昂贵的用户界面操作时,你可能会看到记录的事件 ID 2115 消息。

数据库已满或脱机

如果 Operations Manager 或 Operations Manager 数据仓库数据库空间不足或处于脱机状态,则预期管理服务器将继续将事件 ID 2115 消息记录到 Operations Manager 事件日志中。 此外,挂起时间也会增加。

如果写入操作工作流无法连接到 Operations Manager 或 Operations Manager 数据仓库数据库,或者它们使用无效的凭据建立连接,则会阻止数据插入并记录事件 ID 2115 消息,直到此方案得到解决。

配置和环境问题

如果 Operations Manager 数据库、数据仓库数据库和所有支持环境未正确配置,事件 ID 2115 消息也可能指示性能问题。 下面是此问题的一些可能原因:

  • SQL Server日志或TempDB数据库太小或空间不足。
  • 从 Operations Manager 和数据仓库数据库到管理服务器的网络链接受到带宽限制,或者延迟很大。 在此方案中,建议将管理服务器与 Operations Manager 和数据仓库服务器放在同一 LAN 上。
  • 托管数据库、日志或 TempDB Operations Manager 和数据仓库数据库使用的数据磁盘速度缓慢或遇到功能问题。 在这种情况下,建议使用 RAID 10,并在阵列控制器上启用电池备份的写入缓存。
  • Operations Manager 数据库或数据仓库服务器没有足够的内存或 CPU 资源。
  • 托管 Operations Manager 数据库或数据仓库的 SQL Server 实例处于脱机状态。

我们还建议将管理服务器与 Operations Manager 和数据仓库数据库服务器放在同一 LAN 上。

如果托管数据库、日志或 TempDB Operations Manager 和数据仓库数据库使用的 磁盘子系统速度缓慢或遇到功能问题,也可能发生事件 ID 2115 消息。 建议使用 RAID 10,并在阵列控制器上启用电池备份的写入缓存。

解决方案

排查与性能相关的事件 ID 2115 消息的第一步是确定事件中返回的数据项。 例如,工作流 ID 指示哪种类型的数据项 (,例如发现、警报、事件、性能) 以及涉及哪个数据库。 如果工作流 ID 包含术语 DataWarehouse,则故障排除重点应放在 Operations Manager 数据仓库数据库上。 在其他情况下,重点应放在 Operations Manager 数据库上。

方案 1

在以下示例中,问题涉及 Microsoft.SystemCenter.CollectSignatureData 工作流:

事件类型:
警告事件源:HealthService
事件类别:无
事件 ID:2115
计算机: <RMS 名称>
说明:管理组 <管理组名称> 中的绑定数据源已将项目发布到工作流,但在 300 秒内未收到响应。 这表示工作流存在性能或功能问题。
工作流 ID:Microsoft.SystemCenter.CollectSignatureData
实例: <RMS 名称>
实例 ID:{F56EB161-4ABE-5BC7-610F-4365524F294E}

解决方案

在此示例中,可以通过运行以下 SQL 查询来标识性能签名数据收集规则。 应针对 Operations Manager 数据库在 SQL Server Management Studio 中运行此查询。

-- Return all Performance Signature Collection Rules
Use OperationsManager
select
managementpack.mpname,
rules.rulename
from performancesignature with (nolock)
inner join rules with (nolock)
on rules.ruleid = performancesignature.learningruleid
inner join managementpack with(nolock)
on rules.managementpackid = managementpack.managementpackid
group by managementpack.mpname, rules.rulename
order by managementpack.mpname, rules.rulename

此查询返回所有性能签名集合规则及其各自的管理包名称。 为管理包名称和规则名称返回一列。

管理服务器上的以下性能监视器计数器提供有关数据库和数据仓库写入操作插入批大小和时间的信息:

  • OpsMgr DB 写入操作模块 (*) \Avg. 批大小
  • OpsMgr DB 写入操作模块 (*) \Avg. 处理时间
  • OpsMgr DW 编写器模块 (*) \Avg. 批处理时间,ms
  • OpsMgr DW 编写器模块 (*) \Avg. 批大小

例如,如果批大小 (增加,则默认批大小为) 5,000 个项,则表示管理服务器将数据插入数据库或数据仓库的速度较慢,或者它正在从代理或网关服务器接收突发数据项。

通过检查数据库和数据仓库写入操作帐户 “平均处理时间 ”计数器,我们可以了解向数据库和数据仓库写入一批数据平均需要多长时间。 根据将一批数据写入数据库所需的时间,这可能会提供优化机会。

方案 2

如果托管 Operations Manager 数据库或数据仓库数据库的 SQL Server 实例脱机,则会将事件 ID 2115 和事件 ID 29200 记录到 Operations Manager 事件日志中。 例如:

日志名称:Operations Manager
源:HealthService
日期:
事件 ID:2115
级别:警告
说明:
管理组中的绑定数据源 MSFT 已将项发布到工作流,但在 60 秒内未收到响应。 这表示工作流存在性能或功能问题。
工作流 ID:Microsoft.SystemCenter.CollectEventData
实例:name.contoso.local
实例 ID: {88676CDF-E284-7838-AC70-E898DA1720CB}

日志名称:Operations Manager
来源:OpsMgr 配置服务
事件 ID:29200
级别:错误
说明:
OpsMgr 配置服务已断开与 OpsMgr 数据库的连接,因此无法从数据库获取任何更新。 这可能是一个暂时性问题,可以自动从中恢复。 如果问题仍然存在,通常表示数据库有问题。 原因:
在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。 找不到或无法访问服务器。 验证实例名称是否正确,以及是否将 SQL Server 配置为允许远程连接。 (提供程序:命名管道提供程序,错误:40 - 无法打开与SQL Server) 的连接

解决方案

若要解决此问题,请按照下列步骤操作:

  1. 连接到托管 Operations Manager 数据库的服务器。
  2. 打开 “服务 ”小程序。
  3. 验证SQL Server (MSSQLSERVER) 服务是否已启动并运行。
  4. 如果SQL Server (MSSQLSERVER) 服务未启动并运行,请启动该服务。

还原数据库连接后,工作流应成功开始在各自的数据库中再次存储数据。 事件 ID 31554 确认已成功写入信息:

日志名称:Operations Manager
源:运行状况服务模块
事件 ID:31554
任务类别:Data Warehouse
级别:信息
说明:
工作流成功将数据存储在Data Warehouse
一个或多个工作流受此影响。
工作流名称:Microsoft.SystemCenter.DataWarehouse.CollectEventData
实例名称:name.contoso.local
实例 ID:{88676CDF-E284-7838-AC70-E898DA1720CB}

场景 3

事件 ID 2115 是由运行方式凭据无效引起的。

解决方案

检查 Operations Manager 事件日志中是否出现以下事件。 这些事件通常指示Data Warehouse SQL Server身份验证帐户的凭据可能不正确。

日志名称:Operations Manager
源:HealthService
事件 ID:7000
任务类别:运行状况服务
级别:错误
说明:运行状况服务无法登录管理组管理组名称的运行方式帐户<帐户名称>。<> 错误为登录失败:用户名未知或密码错误。 (1326L) 。 这将阻止运行状况服务使用此运行方式帐户监视或执行操作

日志名称:Operations Manager
源:HealthService
事件 ID:7015
任务类别:运行状况服务
级别:错误
说明:
运行状况服务无法验证管理组管理组<名称的 RunAs 帐户<帐户名称>>的未来有效性。 错误为登录失败:用户名未知或密码错误。 (1326L) 。

若要解决此问题,请按照下列步骤操作:

  1. 打开 Operations Manager 控制台。
  2. 选择“ 管理”。
  3. 选择 “运行方式配置\帐户”。
  4. Data Warehouse SQL Server身份验证帐户配置相应的凭据。

场景 4

磁盘性能问题导致的事件 ID 2115。 当托管 Operations Manager 和数据仓库数据库使用的数据库、日志或 TempDB 的数据磁盘速度缓慢或遇到问题时,可能会发生这种情况。 在此方案中,建议使用 RAID 10 并在阵列控制器上启用电池备份的写入缓存。

解决方案

首先,为包含SQL Server数据或日志文件的所有驱动器捕获以下物理磁盘计数器:

  • 空闲时间百分比:报告的磁盘空闲时间。 低于 50% 的任何内容都可能表示磁盘瓶颈。

  • 平均磁盘队列长度:此值不应超过 LUN 上轴数的两倍。 例如,如果 LUN 有 25 个轴,则值 50 是可接受的。 但是,如果 LUN 有 10 个轴,则值 25 太高。 可以根据 RAID 配置中的 RAID 级别和磁盘数使用以下公式:

    • RAID 0:所有磁盘都在 RAID 0 集中执行工作。

      Average Disk Queue Length <= # (Disks in the array) *2

    • RAID 1:一半的磁盘正在执行工作。 因此,其中只有一半可以计入磁盘队列。

      Average Disk Queue Length <= # (Disks in the array/2) *2

    • RAID 10:一半的磁盘正在执行工作。 因此,其中只有一半可以计入磁盘队列。

      Average Disk Queue Length <= # (Disks in the array/2) *2

    • RAID 5:所有磁盘都在 RAID 5 集中工作。

      Average Disk Queue Length <= # (Disks in the array/2) *2

      平均磁盘秒/传输:完成一个磁盘 I/O 所需的秒数。
      平均磁盘秒/读取:从磁盘读取数据的平均时间(以秒为单位)。
      平均磁盘秒/写入:将数据写入磁盘的平均时间(以秒为单位)。
      磁盘字节数/秒:每秒传入或传出磁盘的字节数。
      磁盘传输/秒:每秒输入和输出操作数 (IOPS) 。

      注意

      此列表中的最后三个计数器的值应始终约为 0.020 (20 ms) 或更少,并且不应超过 0.050 (50 毫秒)

      SQL Server性能故障排除指南中介绍了以下阈值:

      • 小于 10 毫秒:非常好
      • 10-20 毫秒:良好
      • 20-50 毫秒:速度缓慢,需要注意
      • 大于 50 毫秒:严重的 I/O 瓶颈
      • 磁盘字节数/秒:每秒传入磁盘或从磁盘传输的字节数
      • 磁盘传输/秒:每秒输入和输出操作数 (IOPS)

    空闲时间百分比 较低 () 10% 或更少时,这意味着磁盘已充分利用。 在这种情况下,此列表中的最后两个计数器 (磁盘字节数/秒磁盘传输/秒 ,) 可以很好地指示驱动器的最大吞吐量(以字节为单位)和 IOPS。 SAN 驱动器的吞吐量变化很大,具体取决于轴的数量、驱动器的速度和通道的速度。 建议向 SAN 供应商询问驱动器应支持的字节数和 IOPS。 如果 空闲时间百分比 较低,并且这两个计数器的值不符合驱动器的预期吞吐量,请向 SAN 供应商寻求更多故障排除帮助。

以下文章更深入地介绍了如何排查SQL Server性能问题:

方案 5

记录事件 ID 2115,管理服务器生成无法将数据写入 Operations Manager 中的Data Warehouse警报。 还会在管理服务器计算机上遇到以下症状:

  • 管理服务器生成一个或多个警报,如下所示:

    日志名称:Operations Manager
    源:运行状况服务模块
    日期:2022/1/1 中午 12:00:00
    事件 ID:31551
    任务类别:Data Warehouse
    级别:错误
    关键字:经典
    用户:不适用
    计算机: <ManagementServerFQDN>
    说明:
    未能在Data Warehouse中存储数据。 将重试该操作。
    异常“SqlException”:无法打开登录名请求的数据库“OperationsManagerDW”。 登录失败。
    用户“CONTOSO\Action_Account”登录失败。

    一个或多个工作流受此影响。

    工作流名称:Microsoft.SystemCenter.DataWarehouse.CollectPerformanceData
    实例名称: <ManagementServerFQDN>
    实例 ID:{AEC38E5Z-67A9-0406-20DB-ACC33BB9C494}
    管理组: <ManagementGroupName>

  • 管理服务器上的 Operations Manager 事件日志中记录了以下事件:

    日志名称:Operations Manager
    源:HealthService
    日期:2022/1/1 中午 12:00:00
    事件 ID:2115
    任务类别:无
    级别:警告
    关键字:经典
    用户:不适用
    计算机: <ManagementServerFQDN>
    说明:
    管理组 <ManagementGroupName> 中的绑定数据源已将项目发布到工作流,但在 22560 秒内未收到响应。 这表示工作流存在性能或功能问题。
    工作流 ID:Microsoft.SystemCenter.DataWarehouse.CollectPerformanceData
    实例: <ManagementServerFQDN>
    实例 ID:{AEC38E5Z-67A9-0406-20DB-ACC33BB9C494}

解决方案

如果管理服务器没有为其数据仓库 RunAs 配置文件指定的帐户,则可能会出现此问题。 此问题更有可能影响辅助管理服务器。 要解决此问题,请按照下列步骤操作:

  1. 在运行 Operations Manager 的计算机上,打开操作控制台。

  2. 在导航窗格中,选择“ 管理”。

  3. 展开 “安全性”,然后选择“ 运行方式配置文件”。

  4. “运行方式配置文件”视图中,双击“Data Warehouse帐户”。

  5. “运行方式配置文件属性 - Data Warehouse帐户属性”对话框中,选择“运行方式帐户”选项卡,然后选择“新建”。

  6. “运行方式帐户”列表中,选择“Data Warehouse操作帐户”。

  7. “名称” 列表中,选择生成警报的管理服务器。

  8. 选择 “确定” 两次。

  9. 按照步骤 4 到 8 将相应的运行方式帐户分配给以下配置文件:

    • Data Warehouse配置同步读取器帐户
    • Data Warehouse报表部署帐户
    • Data Warehouse SQL Server身份验证帐户
  10. 对于每个配置文件,请选择与运行方式配置文件的名称匹配的运行方式帐户。 例如,进行以下分配:

    • 将Data Warehouse配置同步读取器帐户分配给Data Warehouse配置同步读取器帐户配置文件。
    • 将Data Warehouse报表部署帐户分配给Data Warehouse报表部署帐户配置文件。
    • 将Data Warehouse SQL Server身份验证帐户分配给Data Warehouse SQL Server身份验证帐户配置文件。
  11. 在生成警报的管理服务器上,重启 OpsMgr 运行状况服务

  12. 在管理服务器上的 Operations Manager 事件日志中,验证是否记录了事件 ID 31554 事件。 事件 ID 31554 指示监视器状态已更改为 “正常”。 此更改可解决警报。

场景 6

事件 ID 2115 发生在运行 HP MPIO FF DSM XP 3.01 的服务器上,没有提供 LUN。 当用户打开性能监视器并尝试添加计数器时,性能监视器挂起,并且此应用程序的句柄计数会迅速增加。

解决方法

此问题有两种解决方法:

  • 重命名 HPPerfProv.dll 文件,然后重启 Windows。 重命名文件且未加载文件时,性能监视器将毫无问题地工作。
  • 系统上至少有一个 LUN。