Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

使用资源监控方法排除系统性能故障

资源监控使用情况计算概述

您可以使用 CLI 和 SNMP MIB 查询配置资源监控功能。您可以使用此实用程序来配置足够的余地(为应用程序或虚拟路由器设置的内存空间限制),以监控 DPC 和 MPC 的运行状况和运维效率。您还可以分析和查看 jtree 内存类型以及连续页面、双字和可用内存页的内存使用情况或使用情况。所有 MX 系列路由器数据包转发引擎的 jtree 内存都有两个分段:一个分段主要存储路由表和相关信息,另一个分段主要存储与防火墙过滤器相关的信息。由于为路由表或防火墙过滤器分配更多内存可能会中断数据包转发引擎的转发操作,因此当您提交包含内存增强路由语句的配置时,Junos OS CLI 将显示重新启动所有受影响的 FPC 的警告。

以下部分介绍了基于 I-芯片的线卡和基于 Trio 的线卡的计算方程以及不同内存区域的解释:

基于 Trio 的线卡的资源监控和使用情况计算

在基于 Trio 的线卡中,下一跳的内存块和防火墙过滤器将单独分配。此外,还存在扩展内存,当为下一跃点或防火墙过滤器分配的内存已完全消耗时,将使用扩展内存。下一跳过滤器和防火墙过滤器都可以从扩展内存中分配内存。封装内存区域特定于基于 I 芯片的线卡,不适用于基于 Trio 的线卡。因此,对于基于 Trio 的线卡,可用内存空间百分比可解释如下:

% Free (NH) = (1- (Used NH memory + Used Expansion memory ) / (Total NH memory+Total Expansion memory)) × 100

% Free (Firewall or Filter) = (1-(Used FW memory+Used Expansion memory ) / (Total FW memory+Total Expansion memory)) × 100

封装内存特定于 I 芯片,不适用于基于 Trio 的线卡。

% Free (Encap memory) = Not applicable

基于 I 芯片的线卡的资源监控和使用计算

基于 I 芯片的线卡包含与路由查找块关联的 32 MB 静态 RAM (SRAM) 内存以及与输出 WAN 块关联的 16 MB SRAM 内存。

路由查找内存是一个 32 MB 内存池,分为两个 16 MB 的分段。在标准配置中,分段 0 用于 NH 和前缀,分段 1 用于防火墙或过滤器。通过使用 [编辑机箱] 层次结构级别的路由内存增强选项,可以修改此分配。在一般配置中,NH 应用可以从两个分段中的任何一个分配内存。因此,NH 的可用内存百分比基于 32 MB 内存计算。目前,防火墙应用程序仅分配分段 1 的内存。因此,要监控防火墙的可用内存百分比仅从分段 1 中的可用 16 MB 内存开始。

对于基于 I 芯片的线卡,可用内存空间百分比可解释如下:

% Free (NH) = (32-(Used NH memory+Used FW memory+Used Other application)) / 32×100

% Free (Firewall or Filter)=(16-(Used NH memory+Used FW memory+Used Other application)) / 16×100

输出 WAN (Iwo) SRAM 的内存大小为 16 MB,并存储包含封装信息的第 2 层描述符。此实体是一种关键资源,需要加以监控。此内存空间在 show 命令的输出中显示为“Encap mem”。封装区域的可用内存百分比计算方法如下:

% Free (Encapsulation memory) = (16-(Iwo memory used ( L2 descriptors +other applications))) / 16×100

为下一跃点内存配置的水印级别也对封装内存有效。因此,如果封装区域的可用内存百分比低于配置的水印,将生成日志。

如果可用内存百分比低于特定内存类型的可用内存水线,则系统日志中会记录以下错误消息:

“Resource Monitor: FPC <slot no> PFE <pfe inst> <“JNH memory” or “FW/ Filter memory”> is below set watermark <configured watermark>”.

您可以使用层级上的[edit system services resource-monitor]语句来配置资源监控跟踪操作traceoptions file <filename> flag flag level level size bytes。默认情况下,消息会写到 /var/log/rsmonlog。与套接字通信故障(路由引擎和数据包转发引擎之间)关联的错误日志有助于诊断路由引擎和数据包转发引擎之间通信的问题。

从 Ukern 的角度来看,MPC5E 仅包含一个数据包转发引擎实例。show 机箱交换矩阵平面命令输出显示交换矩阵平面连接到数据包转发引擎的状态。由于存在两个数据包转发引擎,您会注意到输出中的 PFE-0 和 PFE-1。

由于只有一个用于 MPC5E 的数据包转发引擎实例,因此 show system resource-monitor fpc 命令的输出仅显示与数据包转发引擎实例 0 对应的一行。

配置的水印将跨 GRES 和统一 ISSU 过程保留。

通过在 MX 系列路由器上配置内存资源使用情况监控来诊断和调试系统性能

Junos OS 支持使用 CLI 和 SNMP MIB 查询进行资源监控功能。您可以利用这种公用事业来配置足够的空间(为应用或虚拟路由器设置的内存空间限制),以确保系统稳定性,特别是 MX 系列路由器上基于 I-芯片的线卡和基于 Trio 的 FPC 的运行状况和操作效率。当内存利用率(ukernel 内存或 ASIC 内存)达到一定阈值时,系统操作会损害线卡的运行状况和流量处理稳定性,而这种对系统性能的权衡可能不利于支持实时流量和协议。

要配置内存资源利用功能的属性:

  1. 指定您要配置利用不同内存资源区域的监控机制。

    此功能默认启用,无法手动禁用。

  2. 指定所有内存区域(例如堆或 ukernel、下一跳和封装以及防火墙过滤器内存)的高阈值,超过生成警告或错误日志的阈值。
  3. 使用水印值指定用于监控下一跃点的可用内存空间百分比。
  4. 指定要使用水印值监控用于万能内存或堆内存的可用内存空间百分比。
  5. 使用水印值指定用于防火墙和过滤器内存的可用内存空间百分比。
    注:

    可用下一跃点内存百分比的水印值默认值和配置值同样适用于封装内存。可用 Ukernel 或堆内存、下一跃点内存和防火墙过滤器内存的百分比的默认水位线值为 20%。

  6. 当内存资源的利用率超过阈值或检查点级别时,禁用生成错误日志消息。默认情况下,消息会写在 /var/log/rsmonlog 中。
  7. 定义要监控和分析的资源类别以确保系统稳定性,特别是 MX 系列路由器上基于 I 芯片的线卡和基于 Trio 的 FPC 的运行状况和操作效率。资源类别包括详细的 CPU 利用率、会话速率和会话计数统计信息。您可以使用资源类别统计信息来了解新的攻击对象或应用程序对性能的影响程度。
    注:

    所有 MX 系列路由器数据包转发引擎的 jtree 内存都有两个分段:一个分段主要存储路由表和相关信息,另一个分段主要存储与防火墙过滤器相关的信息。Junos OS 提供内存增强型语句,用于为路由、防火墙过滤器和第 3 层 VPN 重新分配 jtree 内存。

  8. 将资源类型配置为连续页面,您希望通过启用监控机制来提供足够的余地,以确保有效的系统性能和流量处理能力。指定指定内存类型或区域(在这种情况下为连续页面)的高阈值和低阈值,超过生成警告或错误日志的阈值。
  9. 将资源类型配置为自由双字 (dwords),您希望通过启用监控机制来提供足够的空间来确保有效的系统性能和流量处理能力。为指定的内存类型或区域指定超出生成警告或错误日志的高阈值和低阈值,这在本案例中为自由字数。
  10. 将资源类型配置为要启用监控机制的可用内存页,以便提供足够的余地,以确保有效的系统性能和流量处理能力。为指定的内存类型或区域指定超出生成警告或错误日志的高阈值和低阈值,在这种情况下为可用内存页面。
  11. 使用 show system resource-monitor fpc 命令查看 FPC 数据包转发引擎上内存资源的利用率。过滤器内存表示用于防火墙过滤器计数器的过滤器计数器内存。在每个内存区域旁边显示的星号 (*) 表示当前超过配置的阈值的区域。

对 jnxNat MS-DPC 和 MS-MIC 对象值不匹配进行故障排除

问题

说明

当同时在网络中部署 MS-DPC 和 MS-MIC 并且将网络地址转换 (NAT) 类型配置为 napt-44时,jnxNatObjects 的 snmp mib walk 命令输出会显示不同的 MS-DPC 和 MS-MIC 值。

解析

配置 SNMP 以匹配 MS-DPC 和 MS-MIC 的 jnxNatObjects 值

要配置 SNMP 以匹配 MS-DPC 和 MS-MIC 的 jnxNatObjects 值:

  1. 运行 set services service-set service-set-name nat-options snmp-value-match-msmic 配置模式命令。以下配置示例说明如何配置 SNMP,以将 jnxNatObjects MIB 表中的 MS-MIC 特定对象的值与 MS-DPC 对象的值匹配。

  2. 发出 commit 命令以确认更改。

  3. (可选) show snmp mib walk jnxNatObjects 运行命令以验证 jnxNatObjects MIB 表中的 MS-MIC 特定对象的值是否与 MS-DPC 对象的值匹配。例如,以下输出显示 MS-MIC 特定对象和 MS-DPC 对象的值匹配。

    注:

    您可以使用 delete services service-set service-set-name nat-options snmp-value-match-msmic 配置模式命令禁用此功能。

FPC 插槽中数据包转发引擎的 Ukernel 内存托管对象

jnxPfeMemoryUkernTable对象标识符为 {jnxPfeMemory 1},其中包含JnxPfeMemoryUkernEntry用于检索指定数据包转发引擎插槽的全局 Ukernel 或堆内存统计信息。每个 JnxPfeMemoryUkernEntry(其对象标识符为 {jnxPfeMemoryUkernTable 1})都包含下表中列出的对象。表示 jnxPfeMemoryUkernEntry 内存利用率,例如可用内存总数和已用内存百分比。

表 1: jnxPfeMemoryUKernTable

对象

对象 ID

说明

jnxPfeMemoryUkernFreePercent

jnxPfeMemoryUkernEntry 3

表示 ukern 堆中的可用数据包转发引擎内存百分比。

数据包转发引擎内存统计数据的托管对象

jnxPfeMemory 表的对象标识符 {jnxPfeMib 2} 包含在 表 2

表 2: jnxPfeMemory 表

对象

对象 ID

说明

jnxPfeMemoryUkernTable

jnxPfeMemory 1

为指定数据包转发引擎插槽提供全局 Ukern 内存统计信息。

jnxPfeMemoryForwardingTable

jnxPfeMemory 2

为指定数据包转发引擎插槽提供全局下一跃点(适用于基于 Trio 的线卡)或 Jtree(适用于基于 I 芯片的线卡)内存利用率和防火墙过滤器内存利用率统计信息。

FPC 插槽中数据包转发引擎的下一跃点、Jtree 和防火墙过滤器内存的托管对象

jnxPfeMemoryForwardingTable对象标识符为 {jnxPfeMemory 2},其中包含JnxPfeMemoryForwardingEntry用于检索基于 Trio 的线卡的下一跃点内存,为基于 I 芯片的线卡检索下一跃点内存,以及为指定数据包转发引擎插槽检索 I-芯片和基于 Trio 的线卡的防火墙或过滤器内存统计信息。每个 jnxPfeMemoryForwardingEntry(其对象标识符为 {jnxPfeMemoryForwardingTable 1})都包含下表中列出的对象。

jnxPfeMemoryForwardingEntry 代表 ASIC 实例、使用的 ASIC 内存和 ASIC 可用内存。所有 MX 系列路由器数据包转发引擎的 jtree 内存都有两个分段:一个分段主要存储路由表和相关信息,另一个分段主要存储与防火墙过滤器相关的信息。由于为路由表或防火墙过滤器分配更多内存可能会中断数据包转发引擎的转发操作,因此当您提交包含内存增强路由语句的配置时,Junos OS CLI 将显示重新启动所有受影响的 FPC 的警告。在重新启动 FPC 或 DPC 之前(在 MX 系列路由器上),配置才会生效。

表 3: jnxPfeMemoryForwardingTable

对象

对象 ID

说明

jnxPfeMemoryForwardingChipSlot

jnxPfeMemoryForwardingEntry 1

指示数据包转发引擎复杂体中的 ASIC 实例编号。

jnxPfeMemoryType

jnxPfeMemoryForwardingEntry 2

指示数据包转发引擎内存类型,其中 nh = 1,fw = 2,encap = 3。

jnxPfeMemoryForwardingPercentFree

jnxPfeMemoryForwardingEntry 3

指示每种内存类型的可用内存百分比。

jnxPfeMemoryErrorsTable

瞻博网络企业专用数据包转发引擎 MIB,其对象 ID 为 {jnxPfeMibRoot 1},支持新的 MIB 表, jnxPfeMemoryErrorsTable以显示数据包转发引擎内存错误计数器。jnxPfeMemoryErrorsTable对象标识符为 jnxPfeNotification 3,其中包含JnxPfeMemoryErrorsEntry。每个 JnxPfeMemoryErrorsEntry(其对象标识符为 { jnxPfeMemoryErrorsTable 1 })都包含下表中列出的对象。

表 4: jnxPfeMemoryErrorsTable

对象

对象 ID

说明

jnxPfeFpcSlot

jnxPfeMemoryErrorsEntry 1

表示此 PFE 通知集的 FPC 插槽编号

jnxPfeSlot

jnxPfeMemoryErrorsEntry 2

表示此错误集的 PFE 插槽编号

jnxPfeParityErrors

jnxPfeMemoryErrorsEntry 3

表示奇偶校验错误计数

jnxPfeEccErrors

jnxPfeMemoryErrorsEntry 4

表示错误检查代码 (ECC) 错误计数

pfeMemoryErrors

对象 pfeMemoryErrorsNotificationPrefix标识符为 {jnxPfeNotification 0}的将包含属性 pfeMemoryErrors 。pfeMemoryErrors 对象,其标识符 {pfeMemoryErrorsNotificationPrefix 1} 包含 jnxPfeParityErrorsjnxPfeEccErrors 对象。

表 5: pfeMemoryErrors

对象

对象 ID

说明

pfeMemoryErrors

pfeMemoryErrorsNotificationPrefix 1

当 jnxPfeParityErors 或 jnxPfeccerors 的值增加时,将发送 pfeMeryErrors 通知。