跳转至

监控#

重要的是监控系统运行状况,以便在问题发生之前检测到它们,而且在问题发生的情况下,能够快速识别问题的根本原因。

以下部分介绍了如何监控这两种类型的服务器:

  1. 应用程序服务器
  2. 数据库服务器

此外,它还包括一个描述建议监控策略的部分。

应用程序服务器#

本部分介绍对以下组件的监控:

  1. 分布事务处理协调器(DTC)
  2. 消息队列
  3. 负载平衡
  4. 应用程序服务器性能计数器
  5. Microsoft防火墙
  6. Microsoft IIS
  7. 进程资源管理器
  8. Windows事件日志

分布式事务处理协调器(DTC)#

可以使用组件服务管理单元中的“事务统计数据”来监控Microsoft分布式事务处理协调器(MS DTC)事务的性能。“事务统计数据”显示有关服务器参与的事务的统计数据。 “事务统计数据”可用于获得MS DTC性能的概览。

要查看Microsoft分布式事务处理协调器(DTC)事务统计数据,必须执行以下步骤顺序:

  1. 打开“组件服务”。要打开“组件服务”,请单击“开始”。在搜索框中,键入dcomcnfg,然后按Enter键。
  2. 在控制台树中,双击分布式事务处理协调器文件夹,然后双击“本地DTC”,最后单击事务统计数据
  3. 您可以查看“当前”、“聚合”和“响应时间”节点下事务的状态。

示例:

Monitoring Example: DTC

有关分布事务处理协调器的详细信息,请参阅分布式事务 ⧉或“安装指南 > Microsoft DTC”。

消息队列#

本部分介绍如何监控凯睿德制造软件消息队列。 系统出于各种目的使用许多队列,但对系统操作而言最重要的队列是CmfQueue。系统发送的所有消息都储存在此队列中,并由系统消息总线进行处理。

Note

如果此队列中的消息数量不断增加,请查看故障排除帮助部分以解决此问题。

死信队列#

无法送达和过期的事务性消息储存在事务性死信队列中。

Monitoring Example: Dead Letter

有关详细信息,请参阅死信队列 ⧉一文。

Note

此队列中的消息表明系统消息总线存在问题。在这种情况下,请查看故障排除以解决问题。

有关详细信息,请参阅“安装手册 > Microsoft消息队列”,也可以参阅《安装手册》中的“配置远程队列”。

负载平衡#

监控发现服务#

凯睿德制造软件发现服务是WSFC中的一项服务,应应用有关群集监控的所有最佳实践。 会监视不同的组件来了解可用性:

  • 群集报告群集节点、资源组和所有资源的状态。
  • 群集节点报告该节点上的群集组的状态;其他节点的状态;以及资源组的状态。
  • 群集实例报告实例的可用性。

Info

另请参阅用户指南 / 管理 / 主机管理器管理页面。

应用程序服务器性能计数器#

Windows提供了一种称为WMI (Windows Management Instrumentation)的基础设施,它允许实时监控硬件性能指标(计数器)。计数器用于提供有关操作系统、应用程序、服务或驱动程序性能的实时信息。计数器数据可以帮助确定系统瓶颈并微调系统和应用程序性能。操作系统、网络和设备提供了应用程序可以使用的计数器数据,以向用户提供系统执行情况的图形视图。

Monitoring Example: Application Server Performance Counters

可通过“服务器管理器 -> 管理工具”中的“监控工具”访问性能计数器。 可用于在凯睿德制造软件应用程序服务器中进行监控的一些典型性能计数器包括:

类别 计数器 描述
流程 % Processor Time 监控处理器活动。
系统 Processor Queue Length 监视磁盘队列长度 - 数字较大则表明磁盘上存在争用情况。
内存 Available Memory 监控可用内存。数字较小则可能表明正在进行大量的寻呼活动。
内存 Pages/Sec 监控服务器分页。值较小则表明运行状况良好。

Table: 应用程序服务器性能计数器

要找到最有用的性能计数器的更全面列表,请单击此链接 ⧉ (性能监视器计数器)。

此外,也可通过编辑凯睿德制造软件主机的app.config文件来启用WCF性能计数器。 有关详细信息,请参阅[服务器管理器](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc732131(v=ws.10)。

进程资源管理器#

Note

本部分包含来自以下URL的物料: (http://en.wikipedia.org/wiki/Process_Explorer) ⧉

进程资源管理器是一个系统监控和检查实用程序,可用作调试软件或系统问题的第一步。 进程资源管理器可用于跟踪问题。例如,它提供了一种列出或搜索进程或所有进程所拥有的命名资源的方法。这可用于跟踪使文件保持打开状态并阻止其他程序使用该文件的对象。另一个示例是,它可以显示用于启动程序的命令行,从而可以区分其他相同的进程。与任务管理器类似,进程资源管理器可以显示一个最大限度使用CPU的进程,但与任务管理器不同的是,进程资源管理器可以显示哪个线程(使用调用堆栈)正在使用CPU - 这些信息甚至在调试程序下都不可用。

功能

  • 进程的分层视图。
  • 能够在每个进程旁边显示图标和公司名称。
  • 任务栏中的实时CPU活动图。
  • 能够暂停选定的进程。
  • 能够提升与进程关联的窗口并显示该窗口。
  • 可以终止完整的进程树。
  • 以交互方式更改服务进程的访问安全性
  • 以交互方式设置进程的优先级
  • 消除执行多个服务功能的服务可执行文件的歧义。例如,将指针放在svchost.exe上时,可判断它是执行自动更新/二次登录等操作的程序、提供RPC的程序,还是执行终端服务的程序,等等。

请参阅进程资源管理器 ⧉页面,获取详细信息及进程资源管理器下载。

Windows防火墙#

高级安全Windows防火墙可用于保护和监控网络上的 计算机。

要启动高级安全Windows防火墙监控,请遵循以下步骤顺序:

  1. 单击开始
  2. 单击控制面板
  3. 单击系统和安全
  4. 单击Windows防火墙,然后单击高级设置
  5. 单击监控,然后单击防火墙

有关详细信息,请参阅[Windows防火墙监控](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/dd421717(v=ws.10)。

Microsoft IIS#

Microsoft Internet Information Services (IIS)用于托管凯睿德制造软件Web应用程序。

有关如何监控Microsoft Internet Information Services的详细信息,请参阅[监控IIS](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2000/bb727100(v=technet.10)一文。

管理服务#

按“开始”按钮,然后运行services.msc以访问“服务管理器”,可以检查“凯睿德制造软件基础服务”和“远程导入导出服务”的当前状态。

只需右键单击服务并选择所需的选项,即可管理服务(启动/停止/重启)。

Monitoring Example: Managing Services (Step 1)

Monitoring Example: Managing Services (Step 2)

Windows事件日志#

Windows事件日志会捕获各种不同严重性的事件。 要启动Windows事件日志,请遵循以下步骤顺序:

  1. 单击开始
  2. 键入eventvwr.exe,然后按Enter键。
  3. 检查系统中是否有错误警告,主要是在“应用程序”和“系统”日志中检查。

数据库服务器#

本部分包括以下主题:

  1. 凯睿德制造软件数据库和数据库实例
  2. 数据采集
  3. SQL Server Management Studio
  4. 监控事件
  5. 数据库服务器性能计数器

凯睿德制造软件数据库和数据库实例#

一个典型的凯睿德MES安装由两个Microsoft SQL ServerTM数据库实例(联机和ODS)组成。

联机SQL Server实例储存运行时环境使用的MES数据库。 ODS SQL Server实例储存用于长时间储存、报告和分析的ODS和DWH数据库。

数据采集#

Microsoft SQL ServerTM提供了一个数据采集器,可用于获取和保存从多个来源收集的数据。通过数据采集器,您可以使用数据采集容器,从而确定在运行SQL Server的计算机上进行数据采集的范围和频率。

有关详细信息,请参阅数据采集 ⧉

SQL Server Management Studio#

SQL Server Management Studio是一种管理工具,支持集中管理数据库引擎、分析管理器和SQL查询分析器,并且能够编写Transact-SQL、MDX、XMLA和XML语句。

特殊管理工具#

SQL Server Management Studio在实例级别提供的最有趣的实用程序之一可能是活动监视器。通过以管理权限连接到数据库实例,右键单击该实例并选择“活动监视器”,可以访问“活动监视器”。活动监视器提供了一个关于数据库实例的状态和运行状况的综合仪表板,如下图所示。

SQL Server Management Studio - Activity Monitor

SQL Server Management Studio还提供了实例级别和数据库级别的各种报表。只需右键单击实例或数据库,选择所需的报表,如下图所示。

SQL Server Management Studio - Reports

Info

这些类型的报表存在于实例级别和数据库级别。报表的数量和类型取决于所选对象是实例还是数据库。

下图是一个实例级别“服务器仪表板”报表的屏幕截图。

SQL Server Management Studio - Dashboard report

有关详细信息,请参阅Microsoft SQL Server Management Studio ⧉一文。

监控事件#

SQL ServerTM提供SQL跟踪和事件通知来监控数据库引擎中发生的事件。

有关详细信息,请参阅监控事件 ⧉页面。

数据库服务器性能计数器#

与应用程序服务器性能计数器类似,数据库服务器性能计数器可以检测和监控数据库服务器的硬件使用情况和性能。因为数据库是I/O密集型的,所以检查网络和磁盘活动也是值得的。一些重要的I/O性能计数器如下:

类别 计数器 描述
网络接口 Bytes Total/sec 监控网络活动
物理磁盘 % Disk Time 监控磁盘活动。
物理磁盘 Current Disk Queue Length 监视磁盘队列长度 - 数字较大则表明磁盘上存在争用情况

Table: 数据库服务器I/O计数器

此外,SQL Server还安装一组特定于数据库的计数器,可用于监控与SQL Server关联的不同性能指标。一些可用于监控SQL Server数据库的典型性能计数器包括:

类别 计数器 描述
SQL Server 数据库 提供有关SQL Server数据库的信息,例如数据库中提供的可用日志空间量或者数据库中的活动事务数。此对象可以有多个实例
SQL ServerTM 常规统计数据 提供有关常规服务器范围活动的信息,例如连接到SQL Server实例的用户数
SQL ServerTM 锁定 提供有关SQL Server发出的各个锁定请求的信息,例如锁超时和死锁。此对象可以有多个实例
SQL ServerTM 内存管理器 提供有关SQL Server内存使用情况的信息,例如当前分配的锁定结构总数

Table: 数据库服务器性能计数器

可以在使用SQL Server对象 ⧉页面中找到SQL Server性能计数器的完整列表

建议的监控策略#

本部分介绍了凯睿德MES建议的基于最佳实践的生产环境监控策略。最佳实践可以总结为以下两个准则:

  1. 积极部署支持简单网络管理协议(SNMP)的商业监控系统,以自动执行监控过程并生成自动系统警报。
  2. 定期主动监控系统资源使用和性能的趋势

部署商业监控系统#

商业监控系统有助于配置和自动监控构成分散式应用程序一部分的多个硬件和软件组件的运行状况。

下一小节将介绍应用程序服务器和数据库服务器的建议监控类型。如果使用ERP集成监控,则还会有一个篇幅不大的小节。

应用程序服务器#

下表中列出的组件集应在每个应用程序服务器上进行自动监视。

组件 描述 运行状况
凯睿德制造软件(«CM MES实例»)主机服务状态 这是主要的凯睿德MES应用程序服务器进程 正在运行
凯睿德制造软件远程导入/导出网关(«CM MES实例») 此进程用于导出和导入其他CM MES实例的数据。如果在CM MES实例之间使用导出/导入,则可能非常重要,否则就不重要 正在运行
Internet信息服务器(IIS)服务状态 这是Web服务器进程 正在运行
与凯睿德MES应用程序关联的IIS网站(例如:默认网站)状态 这是由Web服务器托管的网站 已启动
Microsoft分布式事务处理协调器服务状态 这是事务所需的关键组件 正在运行
Microsoft消息队列服务状态 这是消息传递所需的关键组件 正在运行

Table: 应用程序服务器组件

此外,建议进行下表中列出的检查,以确保系统的可用性和响应能力,即使所有组件都已启动并运行。

测试 测试过程描述
在特定服务器上测试凯睿德MES服务响应能力。 对凯睿德MES应用程序服务器进行获取(测试)API调用。服务器必须在合理的时间内正确响应。

Table: 系统可用性和响应能力

下表中列出的一组性能计数器应包含在应用程序服务器的自动监控系统中。

车间 参数 WMI计数器 正常运行状态
CPU CPU利用率 Processor\% Processor Time (_Total) < 80%(平均值)
CPU 处理器队列中的线程数 System\Processor Queue Length
磁盘 磁盘传输 Logical Disk\Disk Transfers/sec (_Total) 低于其容量的80%(平均值)
磁盘 可用磁盘空间 Logical Disk\% Free Space (_Total) > 20%
内存 可用物理内存 Memory\ Memory\Available Mbytes
内存 内存硬页错误 Memory\Pages per Second
内存 页面文件利用率 Paging File\ % Usage (_Total) < 80%(平均)
内存 虚拟内存利用率 Memory\% Committed Bytes in Use < 80%(平均)
MSMQ Microsoft消息队列日志和死信队列 MSMQ\Messages In Queue (Computer Queues)
网络 网络接口\字节总数/秒 Network Interface\Bytes Total/Sec 低于其产能的80%(平均)
网络 网络接口\输出队列长度 Network Interface\Output Queue Length
事务管理 已中止的事务数 Distributed Transaction Coordinator\Aborted Transactions / sec
事务管理 已提交的事务数 Distributed Transaction Coordinator\Committed Transactions / sec
事务管理 响应时间 - 平均值 Distributed Transaction Coordinator\ Response Time -- Average
事务管理 事务数/秒 Distributed Transaction Coordinator\ Transactions/sec

Table: 要监视的自动应用程序服务器性能计数器

数据库服务器#

下表中列出的一组组件应在每个数据库服务器上接受自动监视。

组件 描述 正常运行状态
SQL Server «CM MES联机数据库»服务状态 这是联机凯睿德制造软件数据库服务器实例 正在运行
SQL Server «CM MES ODS数据库»服务状态 这是ODS凯睿德制造软件数据库服务器实例。ODS可以与联机数据库服务器实例在同一实例中运行 正在运行
SQL Server代理«CM MES联机数据库» 这是一项针对联机数据库服务器实例执行计划管理任务的SQL Server服务 正在运行
SQL Server代理«CM MES ODS数据库» 这是一项针对ODS数据库服务器实例执行排产管理任务的SQL Server服务。ODS可以与联机数据库服务器实例在同一实例中运行 正在运行
SQL Server «CM MES数据仓库数据库» Analysis Services服务 状态。这是凯睿德制造软件数据仓库Analysis Services服务器 正在运行
SQL Server Reporting Services «CM MES ODS数据库» 这是用于报告目的的SQL Server服务 正在运行
SQL Server Browser 支持浏览和发现SQL Server实例和服务的辅助服务 正在运行
SQL Server Integration Services 用于SQL Server数据集成和工作流应用程序的服务 正在运行
SQL Server VSS编写器 允许联机执行备份的服务 正在运行
Sentinel LDK许可证管理器 这是一个用于授权凯睿德MES排产模块的授权组件。它通常安装在数据库服务器中以实现高可用性目的 正在运行

Table: 要监视的数据库服务器性能计数器

此外,即使所有组件都已启动并运行,也建议检查数据库的可用性和响应能力。而且还需要检查一组关键数据库作业的执行状态。下表介绍了这些建议的测试。

测试 测试程序说明
在特定数据库服务器实例上测试数据库响应能力 执行SQL Select语句。数据库服务器必须在合理的时间内正确响应
测试联机数据库中以下作业的状态:
{数据库名称} 数据复制
检查作业状态是否为“正在执行”
测试联机数据库中以下作业的状态:
{数据库名称} 删除历史记录表
{数据库名称} 执行入队命令
{数据库名称} 执行ODS入队命令
{数据库名称} 清除实体类型
{数据库名称} 为标识列重新设定种子
{数据库名称} 终止过期的图表数据点
检查所有作业的上次运行结果是否为“已成功”
测试ODS数据库中以下作业的状态:
{数据库名称} 导出已终止的物料XML
{数据库名称} 主表分区
{数据库名称} 管理分区
{数据库名称} ODS中的入队命令
检查所有作业的上次运行结果是否成功
测试DWH数据库中以下作业的状态:
{数据库名称} 凯睿德制造软件数据仓库
{数据库名称} 凯睿德制造软件DWH分区管理
检查所有作业的上次运行结果是否成功

Table: 要监视的数据库服务器作业

下表中列出的一组性能计数器必须在数据库服务器上接受自动监控。

车间 参数 WMI计数器 正常运行状态
CPU CPU利用率 Processor\ % Processor Time(_Total) < 80%(平均)
CPU 处理器队列中的线程数 System\Processor Queue Length
磁盘 磁盘传输 Logical Disk\ Disk Transfers/sec (_Total) 低于其产能的80%(平均)
磁盘 可用磁盘空间 Logical Disk\ % Free Space (_Total) > 20%
内存 可用物理内存 Memory\ Memory\ Available Mbytes
内存 内存硬页故障 Memory\ Pages per Second
内存 页面文件利用率 Paging File\ % Usage (_Total) < 80%(平均值)
内存 虚拟内存利用率 Memory\ % Committed Bytes in Use < 80%(平均)
MSMQ Microsoft消息队列日志和死信队列 MSMQ\Messages In Queue (Computer Queues)
网络 网络接口\字节总数/秒 Network Interface\Bytes Total/Sec 低于其产能的80%(平均)
网络 网络接口\输出队列 Length Network Interface\ Output Queue Length
事务管理 中止的事务 Distributed Transaction Coordinator\ Aborted Transactions/sec
事务管理 提交的事务 Distributed Transaction Coordinator\ Committed Transactions / sec
事务管理 响应时间 - 平均值 Distributed Transaction Coordinator\ Response Time - Average
事务管理 事务数/秒 Distributed Transaction Coordinator Transactions/sec

Table: 要监视的数据库服务器性能计数器

除了上述性能计数器之外,还建议为每个数据库服务器实例添加以下性能计数器。每个服务器实例都提供一组以MSSQL${数据库实例名称}开头的WMI计数器。

参数 描述 WMI计数器
批处理请求数/秒 “批处理请求数/秒”衡量SQL Server每秒接收的批处理数。此计数器可以很好地指示SQL Server机器正在处理多少活动。数字越大,在您的机器上执行的查询就越多。与许多计数器一样,没有一个数字可以普遍用于表示您的机器太忙。现今的机器变得越来越强大,因此每秒可以处理更多的批处理请求。您应该随着时间的推移查看此计数器,以确定您的环境的基线数字 MSSQL${Database Instance Name}:SQL Statistics\Batch Requests/sec
缓冲区缓存命中率 “缓冲区缓存命中率”计数器表示当查询需要数据页时,SQL Server能够在其缓冲区缓存中找到数据页的频率。此数字越大越好,因为这意味着SQL Server能够从内存中获取查询数据,而不是从磁盘读取数据。您希望此数字尽可能接近100。此计数器为100意味着SQL Server 100%的时间都能在内存中找到所需的数据页。缓冲区缓存命中率低可能表明存在内存问题 MSSQL${Database Instance Name}:Buffer Manager\Buffer cache hit ratio
缓冲区页生存期 “页生存期”计数器衡量页面在缓冲区缓存中停留的时间(以秒为单位)。页面在内存中停留的时间越长,SQL Server就越有可能不需要从磁盘读取来解析查询。您应该随着时间的推移观察此计数器,以确定数据库环境中正常情况的基线。有人说低于300(或5分钟)意味着您可能需要额外的内存 MSSQL${Database Instance Name}:Buffer Manager\Page life expectancy
检查点页数/秒 “检查点页数/秒”计数器衡量由检查点操作写入磁盘的页数。您应该随着时间的推移观察此计数器,以确定系统的基线。建立基线值后,您可以观察此值是否正在上升。如果此计数器上升,则可能意味着您遇到内存压力,导致脏页比正常情况下更频繁地刷新到磁盘 MSSQL${Database Instance Name}:Buffer Manager\Checkpoint pages/sec
锁定等待数/秒 为了让SQL Server管理系统上的并发用户,SQL Server需要不时地锁定资源。“锁定等待数/秒”计数器跟踪每秒SQL Server无法为资源立即保留锁定的次数。理想情况下,您不希望任何请求等待锁定。因此,您需要将此计数器保持为零,或始终接近于零 MSSQL${Database Instance Name}: Locks\Lock Waits/sec (_Total)
页面分割次数/秒 此计数器衡量SQL Server在每秒更新或插入数据时必须分割页面的次数。页面分割非常昂贵,并且由于碎片导致表的性能更差。因此,页面分割次数越少,系统的性能就越好。理想情况下,此计数器应小于每秒批处理请求的20% MSSQL${Database Instance Name}:Access Methods\Page Splits/sec
被阻塞的进程数 “被阻塞的进程数”计数器标识被阻塞的进程数。当一个进程阻塞另一个进程时,被阻塞的进程不能继续执行其执行计划,直到导致它等待的资源被释放。理想情况下,您不希望看到任何被阻塞的进程。当进程被阻塞时,您应该进行调查 MSSQL${Database Instance Name}:General Statistics\Processes blocked
SQL编译次数/秒 “SQL编译次数/秒”衡量SQL Server每秒编译执行计划的次数。编译执行计划是一项资源密集型操作。应该将“编译次数/秒”与“批处理请求数/秒”进行比较,以了解复杂性是否会影响性能。为此,请将批处理请求数除以每秒编译次数,从而得出每次编译执行的批处理数的比率。理想情况下,您希望每10个批处理请求进行一次编译 MSSQL${Database Instance Name}:SQL Statistics\SQL Compilations/Sec
SQL重新编译次数/秒 当执行计划因某些重大事件而失效时,SQL Server将重新编译该计划。“重新编译次数/秒”计数器衡量每秒触发重新编译事件的次数。与编译一样,重新编译也是昂贵的操作,因此您希望尽量减少重新编译的次数。理想情况下,您希望将此计数器保持在每秒编译数的10%以下 MSSQL${Database Instance Name}:SQL Statistics\SQL ReCompilations/Sec
用户连接数 “用户连接数”计数器标识在采样时连接到SQL Server的不同用户的数量。您需要随着时间的推移观察此计数器,以了解您的基线用户连接数。一旦您对系统正常使用期间的高水位和低水位有了一些了解,您就可以查找此计数器超过高水位和低水位的时间。如果此计数器的值下降,且系统上的负载相同,则可能存在瓶颈,造成服务器无法处理正常负载。请记住,此计数器值可能会下降,因为使用您的SQL Server实例的人较少 MSSQL${Database Instance Name}:General Statistics\User Connections

Table: 要监视的数据库服务器WMI计数器

ERP集成#

ERP集成包括凯睿德MES和ERP之间的消息交换。这些消息会持久保留在系统的ERPEntry对象中。监控ERP集成运行状况的一种简单方法是使用查询检查处于“已失败”状态的活动ERPEntry对象实例。其他可用于统计目的但不影响系统运行状况的状态包括:已收到、已处理和正在处理。

监控趋势#

定期主动了解系统中关于资源使用和消耗以及系统性能的关键趋势非常重要。在硬件资源方面,有必要从参考周期(基线)比较使用情况的变化:

  • CPU利用率
  • 内存利用率
  • 网络利用率
  • 磁盘空间利用率(主要与数据库服务器相关)

从性能的角度来看,分析系统延迟与前一个参考周期的延迟相比如何也很重要。

凯睿德MES附带一份服务性能标准报表,其中按延迟列出了顶级服务(按平均持续时间排序)。如果特定服务的性能开始大幅下降,则值得进行特别调查。如果结果证明是与凯睿德MES标准产品相关的问题,请联系凯睿德MES支持团队。