使用资源监控方法排除系统性能故障
资源监视使用情况计算概述
您可以使用 CLI 和 SNMP MIB 查询来配置资源监控功能。您可以使用此实用程序来调配足够的余量(为应用程序或虚拟路由器设置的内存空间限制),以监控 DPC 和 MPC 的运行状况和操作效率。您还可以分析和查看 jtree 内存类型以及连续页、双字和可用内存页的内存使用情况或消耗量。所有 MX 系列路由器数据包转发引擎上的 jtree 内存有两个段:一个分段主要存储路由表和相关信息,另一个分段主要存储防火墙过滤器相关信息。由于为路由表或防火墙过滤器分配更多内存可能会中断数据包转发引擎的转发操作,因此当您提交包含内存增强型路由语句的配置时,Junos OS CLI 会显示一条警告,提示重新启动所有受影响的 FPC。
以下部分介绍了基于 I 芯片和基于 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-Chip 的线卡的资源监控和使用计算
基于 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 (硫磺) 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 chassis fabric plane命令输出显示与数据包转发引擎的结构平面连接的状态。由于存在两个数据包转发引擎,因此您会注意到输出中的 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 内存)达到特定阈值时,系统操作会影响线卡的运行状况和流量处理稳定性,并且这种对系统性能的权衡可能会不利于支持实时流量和协议。
要配置内存资源利用率功能的属性,请执行以下操作:
对 MS-DPC 和 MS-MIC 的 jnxNatObjects 值不匹配进行故障排除
问题
Description
当 MS-DPC 和 MS-MIC 都部署在网络中,并且网络地址转换 (NAT) 类型配置为 napt-44
时,jnxNatObject 命令的 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 插槽中数据包转发引擎的内核内存托管对象
的对象 jnxPfeMemoryUkernTable
标识符为 {jnxPfeMemory 1}
的 JnxPfeMemoryUkernEntry
包含检索指定数据包转发引擎插槽的全局 ukernel 或堆内存统计信息的 。每个 JnxPfeMemoryUkernEntry
,其对象标识符为 {jnxPfeMemoryUkernTable 1}
,包含下表中列出的对象。表示 jnxPfeMemoryUkernEntry
内存利用率,例如总可用内存和已用内存百分比。
对象 |
对象 ID |
Description |
---|---|---|
|
|
表示 ukern 堆中可用数据包转发引擎内存的百分比。 |
数据包转发引擎内存统计数据的托管对象
对象 jnxPfeMemory
标识符为 的 {jnxPfeMib 2}
表包含 中列出的对象 表 2
对象 |
对象 ID |
Description |
---|---|---|
|
|
提供指定数据包转发引擎插槽的全局 ukern 内存统计信息。 |
|
|
为指定的数据包转发引擎插槽提供全局下一跃点(对于基于 Trio 的线卡)或 Jtree(对于基于 I 芯片的线卡)内存利用率和防火墙过滤器内存利用率统计信息。 |
用于下一跃点、jtree 和防火墙的托管对象 FPC 插槽中数据包转发引擎的过滤器内存
的对象 jnxPfeMemoryForwardingTable
标识符为 {jnxPfeMemory 2}
,包含 JnxPfeMemoryForwardingEntry
检索基于 Trio 的线卡的下一跃点内存、基于 I 芯片的线卡的 jtree 内存,以及 I 芯片和基于 Trio 的线卡的指定数据包转发引擎插槽的防火墙或过滤器内存统计信息。每个 jnxPfeMemoryForwardingEntry
,其对象标识符为 {jnxPfeMemoryForwardingTable 1}
,包含下表中列出的对象。
表示 jnxPfeMemoryForwardingEntry
ASIC 实例、使用的 ASIC 内存和 ASIC 可用内存。所有 MX 系列路由器数据包转发引擎上的 jtree 内存有两个段:一个分段主要存储路由表和相关信息,另一个分段主要存储防火墙过滤器相关信息。由于为路由表或防火墙过滤器分配更多内存可能会中断数据包转发引擎的转发操作,因此当您提交包含内存增强型路由语句的配置时,Junos OS CLI 会显示一条警告,提示重新启动所有受影响的 FPC。在您重新启动 FPC 或 DPC(在 MX 系列路由器上)之前,配置不会生效。
对象 |
对象 ID |
Description |
---|---|---|
|
|
指示数据包转发引擎复合体中的 ASIC 实例编号。 |
|
|
指示数据包转发引擎内存类型,其中 nh = 1,fw = 2,encap = 3。 |
|
|
指示每种内存类型的可用内存百分比。 |
jnxPfeMemoryErrorsTable
瞻博网络特定于企业的数据包转发引擎 MIB(对象 ID 为 {jnxPfeMibRoot 1}
)支持新的 MIB 表, jnxPfeMemoryErrorsTable
以显示数据包转发引擎内存错误计数器。的对象 jnxPfeMemoryErrorsTable
标识符为 jnxPfeNotification 3
为 的 JnxPfeMemoryErrorsEntry
包含 。每个 JnxPfeMemoryErrorsEntry
,其对象标识符为 { jnxPfeMemoryErrorsTable 1 }
,包含下表中列出的对象。
对象 |
对象 ID |
Description |
---|---|---|
|
|
表示这组 PFE 通知的 FPC 插槽编号 |
|
|
表示这组错误的 PFE 插槽编号 |
|
|
表示奇偶校验错误计数 |
|
|
表示错误检查代码 (ECC) 错误计数 |
pfeMemoryErrors
的对象 pfeMemoryErrorsNotificationPrefix
标识符为 {jnxPfeNotification 0}
为 的 包含该 pfeMemoryErrors
属性。对象,其标识符是{pfeMemoryErrorsNotificationPrefix 1}
jnxPfeParityErrors
包含和jnxPfeEccErrors
对象。
对象 |
对象 ID |
Description |
---|---|---|
|
|
当 jnxPfeParityErrors 或 jnxPfeEccErrors 的值增加时,将发送 pfeMemoryErrors 通知。 |