使用资源监控方法排除系统性能故障
资源监控使用情况计算概述
您可以使用 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。
user@host# run show chassis fabric plane Fabric management PLANE state Plane 0 Plane state: ACTIVE FPC 0 PFE 0 :Links ok PFE 1 :Links ok
由于只有一个用于 MPC5E 的数据包转发引擎实例,因此 show system resource-monitor fpc 命令的输出仅显示与数据包转发引擎实例 0 对应的一行。
user@host# run show system resource-monitor fpc FPC Resource Usage Summary Free Heap Mem Watermark : 20 % Free NH Mem Watermark : 20 % Free Filter Mem Watermark : 20 % * - Watermark reached Heap ENCAP mem NH mem FW mem Slot # % Free PFE # % Free % Free % Free 0 94 0 NA 83 99
配置的水印将跨 GRES 和统一 ISSU 过程保留。
通过在 MX 系列路由器上配置内存资源使用情况监控来诊断和调试系统性能
Junos OS 支持使用 CLI 和 SNMP MIB 查询进行资源监控功能。您可以利用这种公用事业来配置足够的空间(为应用或虚拟路由器设置的内存空间限制),以确保系统稳定性,特别是 MX 系列路由器上基于 I-芯片的线卡和基于 Trio 的 FPC 的运行状况和操作效率。当内存利用率(ukernel 内存或 ASIC 内存)达到一定阈值时,系统操作会损害线卡的运行状况和流量处理稳定性,而这种对系统性能的权衡可能不利于支持实时流量和协议。
要配置内存资源利用功能的属性:
对 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 值:
运行
set services service-set service-set-name nat-options snmp-value-match-msmic
配置模式命令。以下配置示例说明如何配置 SNMP,以将 jnxNatObjects MIB 表中的 MS-MIC 特定对象的值与 MS-DPC 对象的值匹配。[edit] user@host# set services service-set Mobile nat-options snmp-value-match-msmic
发出
commit
命令以确认更改。[edit] user@host# commit commit complete
(可选)
show snmp mib walk jnxNatObjects
运行命令以验证 jnxNatObjects MIB 表中的 MS-MIC 特定对象的值是否与 MS-DPC 对象的值匹配。例如,以下输出显示 MS-MIC 特定对象和 MS-DPC 对象的值匹配。[edit] user@host# run show snmp mib walk jnxNatObjects jnxNatSrcXlatedAddrType.6.77.111.98.105.108.101 = 1 jnxNatSrcPoolType.6.77.111.98.105.108.101 = 13 jnxNatSrcNumPortAvail.6.77.111.98.105.108.101 = 64512 jnxNatSrcNumPortInuse.6.77.111.98.105.108.101 = 0 jnxNatSrcNumAddressAvail.6.77.111.98.105.108.101 = 1 jnxNatSrcNumAddressInUse.6.77.111.98.105.108.101 = 0 jnxNatSrcNumSessions.6.77.111.98.105.108.101 = 0 jnxNatRuleType.9.77.111.98.105.108.101.58.116.49 = 13 jnxNatRuleTransHits.9.77.111.98.105.108.101.58.116.49 = 0 jnxNatPoolType.6.77.111.98.105.108.101 = 13 jnxNatPoolTransHits.6.77.111.98.105.108.101 = 0
注:您可以使用
delete services service-set service-set-name nat-options snmp-value-match-msmic
配置模式命令禁用此功能。
另请参阅
FPC 插槽中数据包转发引擎的 Ukernel 内存托管对象
jnxPfeMemoryUkernTable
对象标识符为 {jnxPfeMemory 1}
,其中包含JnxPfeMemoryUkernEntry
用于检索指定数据包转发引擎插槽的全局 Ukernel 或堆内存统计信息。每个 JnxPfeMemoryUkernEntry
(其对象标识符为 {jnxPfeMemoryUkernTable 1}
)都包含下表中列出的对象。表示 jnxPfeMemoryUkernEntry
内存利用率,例如可用内存总数和已用内存百分比。
对象 |
对象 ID |
说明 |
---|---|---|
|
|
表示 ukern 堆中的可用数据包转发引擎内存百分比。 |
数据包转发引擎内存统计数据的托管对象
该 jnxPfeMemory
表的对象标识符 {jnxPfeMib 2}
包含在 表 2
对象 |
对象 ID |
说明 |
---|---|---|
|
|
为指定数据包转发引擎插槽提供全局 Ukern 内存统计信息。 |
|
|
为指定数据包转发引擎插槽提供全局下一跃点(适用于基于 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 系列路由器上),配置才会生效。
对象 |
对象 ID |
说明 |
---|---|---|
|
|
指示数据包转发引擎复杂体中的 ASIC 实例编号。 |
|
|
指示数据包转发引擎内存类型,其中 nh = 1,fw = 2,encap = 3。 |
|
|
指示每种内存类型的可用内存百分比。 |
jnxPfeMemoryErrorsTable
瞻博网络企业专用数据包转发引擎 MIB,其对象 ID 为 {jnxPfeMibRoot 1}
,支持新的 MIB 表, jnxPfeMemoryErrorsTable
以显示数据包转发引擎内存错误计数器。jnxPfeMemoryErrorsTable
对象标识符为 jnxPfeNotification 3
,其中包含JnxPfeMemoryErrorsEntry
。每个 JnxPfeMemoryErrorsEntry
(其对象标识符为 { jnxPfeMemoryErrorsTable 1 }
)都包含下表中列出的对象。
对象 |
对象 ID |
说明 |
---|---|---|
|
|
表示此 PFE 通知集的 FPC 插槽编号 |
|
|
表示此错误集的 PFE 插槽编号 |
|
|
表示奇偶校验错误计数 |
|
|
表示错误检查代码 (ECC) 错误计数 |
pfeMemoryErrors
对象 pfeMemoryErrorsNotificationPrefix
标识符为 {jnxPfeNotification 0}
的将包含属性 pfeMemoryErrors
。pfeMemoryErrors 对象,其标识符 {pfeMemoryErrorsNotificationPrefix 1}
包含 jnxPfeParityErrors
和 jnxPfeEccErrors
对象。
对象 |
对象 ID |
说明 |
---|---|---|
|
|
当 jnxPfeParityErors 或 jnxPfeccerors 的值增加时,将发送 pfeMeryErrors 通知。 |