跳到主要内容

监控软件事件代理的健康状况

Solace PubSub+ 软件事件代理的性能和稳定性受到底层系统资源的性能和稳定性的影响。软件事件代理的健康监控功能提供了持续和按需的健康监控工具,以评估可能影响事件代理稳定性的基础设施问题。系统管理员可以使用健康监控功能来描述基础设施,并在运行时监控分配给事件代理的系统资源。这些信息可用于将事件代理的性能和稳定性问题与其他基础设施事件相关联,并评估基础设施对事件代理部署的适用性。

您可以以下列方式监控软件事件代理的健康状况:

  • 使用 POST 评估系统资源 — 使用 POST(开机自检)实用程序在容器启动时获取系统资源的详细描述和报告。
  • 使用直接运行时指标监控系统资源 — 运行时监控关键应用程序功能,并提前通知性能或稳定性下降。

使用POST评估系统资源

POST 服务在启动时自动运行,以描述可用的系统资源。POST 结果中提供的诊断信息可用于评估基础设施的性能和适用性,以进行事件代理部署。

您可以在启动后通过运行以下命令查看 POST 结果:

  • show system post Solace CLI 命令
  • docker exec -t <container_name> post 命令

您还可以在启动容器之前按需运行 POST 实用程序,通过运行以下命令:

$ docker run -it --rm --env 'system_scaling_maxconnectioncount=100' <container_image_id> post

POST 实用程序的输出看起来类似于以下内容(根据您使用的镜像类型,可能会出现不同的项目;此示例已省略部分内容以简化):

为确保已分配适当的系统资源,请参阅系统资源要求。

使用直接运行时指标监控系统资源

直接运行时指标是关键应用程序功能的在线测量。这些测量可以帮助确定底层系统资源的可用性、性能或稳定性是否足以提供所需的系统性能。

直接运行时指标具有相应的事件和可配置的阈值;您可以使用 show system health CLI 命令查看这些阈值。每当系统测量值超出直接运行时指标的可接受阈值时,代理会引发 SYSTEM_SYSTEM_HEALTH_NONCRITICAL_NOTIFICATION 事件。这些事件每分钟限制为一个,以避免事件日志过于杂乱。

配置最大阈值

您可以为以下直接运行时指标设置阈值:

  • 磁盘 I/O 延迟
  • 计算延迟
  • 网络延迟
  • 配对链路延迟

磁盘 I/O 延迟

磁盘 I/O 延迟统计信息在可能影响性能的地方收集,并且监控不会显著影响性能或稳定性。当测量的磁盘 I/O 延迟超过配置的阈值时,软件事件代理会引发异步事件。高延迟可能表明磁盘或对磁盘的访问过度分配。

要配置磁盘 I/O 延迟的最大阈值,请输入以下命令:

solace> enable
solace# configure
solace(configure)# system health
solace(configure/system/health)# disk-latency-high-threshold <value>

其中:

  • <value> 是磁盘 I/O 延迟指标的最大阈值。

no disk-latency-high-threshold 命令恢复默认值。

计算延迟

此指标比较众所周知函数(例如,epoll 定时器)的执行时间与不变定时器(例如,CPU TSC)。高延迟可能表明 CPU 过度分配,CPU 被其他应用程序阻塞,或对虚拟内存的访问 somehow 降级。当测量的 CPU 指令延迟超过配置的阈值时,软件事件代理会引发异步事件。

要配置计算延迟指标的最大阈值,请输入以下命令:

solace> enable
solace# configure
solace(configure)# system health
solace(configure/system/health)# compute-latency-high-threshold <value>

其中:

  • <value> 是计算延迟指标的最大阈值。

no compute-latency-high-threshold 命令恢复默认值。

在某些环境中,由于不可靠的时间戳计数器(TSC),可能会出现错误或误导性事件,在这种情况下,可能需要通过设置非常大的阈值来禁用此指标。

网络延迟

此指标测量实例与其高可用性(HA)组成员之间的往返网络事务延迟(例如,ping 操作)。高延迟可能表明物理网络接口故障或配置错误,网络布线不足或故障,网络风暴/环路,或网络过度利用。当测量的网络延迟超过配置的阈值时,软件事件代理会引发异步事件。

要配置最大网络延迟阈值,请输入以下命令:

solace> enable
solace# configure
solace(configure)# system health
solace(configure/system/health)# network-latency-high-threshold <value>

其中:

  • <value> 是网络延迟指标的最大阈值。

no network-latency-high-threshold 命令恢复默认值。

配对链路延迟

此指标测量配对链路上事务的完成时间,是一个综合指标,因为配对链路事务结合了计算、磁盘和网络延迟。这是对高可用性(HA)组整体稳定性有重大影响的直接指标。当测量的配对链路延迟超过配置的阈值时,软件事件代理会引发异步事件。

要配置最大配对链路延迟阈值,请输入以下命令:

solace> enable
solace# configure
solace(configure)# system health
solace(configure/system/health)# mate-link-latency-high-threshold <value>

其中:

  • <value> 是配对链路延迟指标的最大阈值。

no mate-link-latency-high-threshold 命令恢复默认值。

查看直接运行时指标

您可以使用 show system health Solace CLI 命令查看直接运行时应用程序指标。在下面的示例中,显示了最小值、最大值、平均值和当前值。

solace(configure/system/health)# show system health

Statistics since: Oct 07 2020 09:38:45 EDT

Units Min Max Avg Curr Thresh Events
------ ------ ------ ------ ------ ------- -------
Disk Latency us 0 24054 0 0 10000000 0
Compute Latency us 937 14502 1127 1078 500000 0
Network Latency us 0 0 0 0 2000000 0
Mate-Link Latency us 0 0 0 0 2000000 0

clear system health stats 命令将所有统计信息重置为 0。