解决 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 数据仓库数据库。

背景

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

每个数据批次的大小取决于创建批次时缓冲区中可用的数据量。 但是,批处理中的数据项目的最大限制为5000。 如果传入的数据项目的速率增加,或者数据项目插入到操作管理器和数据仓库数据库吞吐量的吞吐量降低,则缓冲区将累计更多的数据,并且批量大小增加。

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

  • Microsoft.SystemCenter CollectEntityHealthStateChange
  • Microsoft.SystemCenter CollectPerformanceData
  • Microsoft.SystemCenter 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,因为在将数据插入到数据库或数据仓库过程中发生延迟。 以下是由于写入操作工作流模块丢失数据而记录的事件的示例:

事件类型:错误
事件源:运行
事件类别:无
事件 ID:4506
计算机 <RMS NAME>
说明:
由于 <RMS NAME> 在管理组中 id 为 "{F56EB161-4ABE-5BC7-610F-4365524F294E}" 的实例中运行的规则 Microsoft.Sys"TemCenter OperationalDataReporting" 的数据过多,导致 <MANAGEMENT GROUP NAME> 数据丢失。

深入了解

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

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

例如:

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

Microsoft.SystemCenter.CollectPublishedEntityState工作流将实体状态数据写入 Operations Manager 数据库。 事件 ID 2115 消息指示 Microsoft.SystemCenter.CollectPublishedEntityState 工作流尝试插入一批实体状态数据,并在300秒前开始。 在此示例中,不会完成实体状态数据的插入。 通常情况下,一批数据的插入将在60秒内完成。

如果工作流 ID 包含术语 "数据 仓库",则问题涉及 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 消息,直到解决此方案。

配置和环境问题

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

  • 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 包含术语 "数据 仓库",则故障排除焦点应位于 Operations Manager 数据仓库数据库中。 在其他情况下,焦点应位于 Operations Manager 数据库上。

方案 1

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

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

解决方案

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

-- 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. 批处理处理时间(毫秒)
  • OpsMgr DW 写入程序模块 ( * ) \Avg. 批处理大小

如果批量大小增加 (例如,默认批处理大小为5000项) ,这表示管理服务器很慢,可以将数据插入数据库或数据仓库,或者从代理或网关服务器接收数据的突发。

通过检查数据库和数据仓库 "写入操作帐户" 的 平均处理时间 计数器,我们可以了解将一批数据写入数据库和数据仓库所需的平均时间。 这可能会提供优化的机会,具体取决于将一批数据写入数据库所需的时间。

方案 2

如果承载 Operations Manager 数据库或数据仓库数据库的 SQL Server 实例处于脱机状态,则会在 Operations Manager 事件日志中记录事件 ID 2115 和事件 ID 29200。 例如:

日志名称: Operations Manager
源:运行
结束
事件 ID:2115
级别:警告
说明:
Management Group Group 中的 Bind 数据源 MSFT 已将项目发布到工作流,但在60秒内未收到响应。 这表明工作流的性能或功能问题。
工作流 Id: Microsoft.SystemCenter。 CollectEventData
实例: "contoso. 本地"
实例 Id: {88676CDF-E284-7838-AC70-E898DA1720CB}

日志名称: Operations Manager
源: OpsMgr Config 服务
事件 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
任务类别:数据仓库
级别:信息
说明:
工作流成功将数据存储在数据仓库中
一个或多个工作流受此影响。
工作流名称: Microsoft.SystemCenter CollectEventData
实例名称: "contoso. 本地"
实例 ID: {88676CDF-E284-7838-AC70-E898DA1720CB}

场景 3

事件 ID 2115 是由无效的 RunAs 凭据导致的。

解决方案

检查 Operations Manager 事件日志中是否有以下事件。 这些事件通常表示 数据仓库 SQL Server 身份验证帐户 可能具有不正确的凭据。

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

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

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

  1. 打开 Operations Manager 控制台。
  2. 选择 " 管理"。
  3. 选择 " 运行为 Configuration\Accounts"。
  4. 数据仓库 SQL Server 身份验证帐户配置适当的凭据。

场景 4

由于磁盘性能问题而导致的事件 ID 2115。 当承载由 Operations Manager 和数据仓库数据库使用的数据库、日志或 TempDB 的数据磁盘运行缓慢或遇到问题时,可能会发生这种情况。 在这种情况下,我们建议使用 RAID 10,同时在阵列控制器上启用备有电池的写入缓存。

解决方案

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

  • % Idle time:报告了多少磁盘空闲时间。 小于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

      Avg. Disk sec/Transfer:完成一个磁盘 i/o 所需的秒数。
      Avg. Disk sec/read:从磁盘读取数据的平均时间(以秒为单位)。
      Avg. Disk sec/write:将数据写入磁盘的平均时间(以秒为单位)。
      Disk Bytes/sec:每秒传输到磁盘或从磁盘传输的字节数。
      磁盘传输数/秒:每秒 (IOPS) 的输入和输出操作数。

      备注

      此列表中的最后三个计数器的值应始终为大约 **.020 (20 ms) ** 或更少,不得超过 **050 (50 毫秒) **。

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

      • 小于10毫秒:很棒
      • 10-20 毫秒:较佳
      • 20-50 ms:慢,需要注意
      • 大于 50 ms:严重 i/o 瓶颈
      • Disk Bytes/sec:每秒传输到磁盘或从磁盘传输的字节数
      • 磁盘传输数/秒:每秒 (IOPS 的输入和输出操作数)

    % Idle Time (10% 或更低时) ,这意味着磁盘充分利用。 在这种情况下,此列表中的最后两个计数器 (磁盘 Bytes/secdisk 传输率/sec) 提供了驱动器的最大吞吐量(以字节为单位)和 IOPS 的更佳表示。 SAN 驱动器的吞吐量非常可变,具体取决于磁盘轴的数量、驱动器的速度以及通道的速度。 我们建议您询问 SAN 供应商,以了解驱动器应支持多少字节和 IOPS。 如果 % Idle Time 较低,并且这两个计数器的值不符合预期的驱动器吞吐量,请向 SAN 供应商寻求更多故障排除帮助。

以下文章进一步深入了解如何解决 SQL Server 性能问题:

方案 5

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

  • 管理服务器生成一个或多个类似于以下内容的警报:

    性能数据收集过程无法将数据写入数据仓库。 无法在数据仓库中存储数据。
    异常 "SqlException": id 为 "9069F7BD-55B8-C8E8-1CF9-4395F45527E2" 的管理组不允许访问登录 "contoso \ Action_Account" 下的数据仓库。一个或多个工作流受此影响。
    工作流名称: Microsoft.SystemCenter CollectPerformanceData
    实例名称: dataWarehouseServer.contoso.com
    实例 ID: {48936EE3-4E3E-BEE1-8C09-AFDAB8ECF236}
    管理组: <Management Group Name>

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

    事件类型:警告
    事件源:运行
    事件类别:无
    事件 ID:2115
    日期:日期
    Time: time
    用户: N/A
    计算机 <ManagementServerName>
    说明:管理组中的绑定数据源 <Management Group Name> 已将项目发布到工作流,但未在1712秒内收到响应。 这表明工作流的性能或功能问题。 工作流 Id: Microsoft.SystemCenter CollectPerformanceData
    实例: ManagementServerName.contoso.com
    实例 Id: {C7FDDE2A-E0AA-4B80-70DE-1D50D9965221}

解决方案

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

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

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

  3. 展开 " 安全性",然后选择 " 运行" 作为配置文件

  4. 在 " 以配置文件方式运行 " 视图中,双击 " 数据仓库帐户"。

  5. 在 " 运行方式配置文件属性-数据仓库帐户 属性" 对话框中,选择 " 运行方式帐户 " 选项卡,然后选择 " 新建"。

  6. 在 " 运行方式帐户 " 列表中,选择 " 数据仓库操作帐户"。

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

  8. 选择 "确定" 两次。

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

    • 数据仓库配置同步读者帐户
    • 数据仓库报告部署帐户
    • 数据仓库 SQL Server 身份验证帐户
  10. 对于每个配置文件,选择与运行方式配置文件的名称相匹配的运行方式帐户。 例如,进行以下分配:

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

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

场景 6

在运行 HP MPIO FF DSM XP 3.01 的服务器上,如果没有显示 Lun,则会发生事件 ID 2115。 当用户打开性能监视器并尝试添加计数器、性能监视器挂起以及此应用程序的句柄计数快速增加时。

解决方法

有两种解决方法可解决此问题:

  • 重命名 HPPerfProv.dll 文件,然后重新启动 Windows。 在重命名但不加载文件时,性能监视器将正常工作,且不会出现问题。
  • 系统中至少有一个 LUN 存在。