订阅者管理和服务的资源监控
订阅者管理和服务的资源监控概述
Junos OS 支持使用 CLI 和 SNMP MIB 查询的资源监控功能。您可以使用此实用程序来预置足够的余量(应用程序或虚拟路由器的内存空间限制),以确保系统稳定性,尤其是 MX 系列路由器上基于 I 芯片的线卡和基于 Trio 的 FPC 的运行状况和运行效率。
当内存利用率(ukernel 内存或 ASIC 内存)达到特定阈值时,系统操作会影响线卡的运行状况和流量处理稳定性。这种对系统性能的权衡可能会不利于支持实时流量和协议。
除了能够配置阈值以在超过资源的特定阈值时触发错误日志之外,您还可以使用 SNMP MIB 查询监控阈值和资源利用率。
以下部分介绍了 Junos OS 提供的资源监控类型:
使用水印进行线卡资源监控
您可以为线卡资源(如 ukern 内存(堆)、下一跳 (NH) 内存以及防火墙或过滤器内存)配置水印或检查点值,以便为基于 Trio 和基于 I 芯片的线卡保持一致。NH 内存水印仅适用于封装内存(输出 WAN 静态 RAM 内存)。封装存储器特定于 I 芯片,不适用于基于 Trio 的芯片。当超过配置的水印时,将触发错误日志。如果资源的使用量超过了某个阈值,则会生成警告系统日志消息,以通知已超过阈值。然后,您可以根据您的网络需求确定是否要终止任何现有订阅者和服务,以防止系统过载并导致故障。
此功能从每个线卡收集输入,并使用已知的内部端口将此统计详细信息传输到路由引擎进程。此信息由例程引擎上的守护程序扫描,并使用会话数据库中内置的共享内存空间,为超出阈值的情况生成警告消息。
MX80、MX104 路由器以及 MX240、MX480、MX960、MX2010 和 MX2020 路由器上的以下线卡支持配置资源监控的功能:
MX-MPC1-3D
MX-MPC1-3D-Q
MX-MPC2-3D
MX-MPC2-3D-Q
MX-MPC2-3D-EQ
MPC-3D-16XGE-SFPP
MPC3E
MPC3E-3D-NG
MPC4E-3D-2CGE-8XGE
MPC4E-3D-32XGE
MPC5EQ-40G10G
MPC5EQ-100G10G
MPC5E-100G10G
MPC5E-40G10G
MPC10E-10C-MRATE
MPC10E-15C-MRATE
MX2K-MPC6E
MX2K-MPC11E
DPCE型企业
MS-DPC
MX 系列灵活的 PIC 集中器 (MX-FPC)
NG-MPC3E
您可以在层次结构级别配置以下参数 [edit system services]
,以指定所有内存空间或区域通用的高阈值,以及 DPC 和 MPC 上不同内存块的水印值:
高阈值,超过为内存的所有区域(如堆或 ukernel、下一跃点和封装以及防火墙过滤器内存
resource-monitor high-threshold value
)生成的警告或错误日志。使用
resource-monitor free-nh-memory-watermark percentage
语句使用水印值监视下一跃点的可用内存空间百分比。使用
resource-monitor free-heap-memory-watermark percentage
语句使用水印值监视用于 ukernel 或堆内存的可用内存空间百分比。使用
resource-monitor free-fw-memory-watermark percentage
语句使用水印值监视防火墙和筛选器内存的可用内存空间百分比。默认情况下,此功能处于启用状态,您无法手动禁用它。可用下一跃点内存百分比的水印值的默认值和配置值也适用于封装内存。
可用 ukernel 或堆内存、下一跳内存和防火墙过滤器内存百分比的默认水印值如下:
空闲堆内存水印 - 20
free-nh-memory-watermark—20
free-fw-memory-watermark - 20
根据 CoS 资源容量限制订阅者负载
从 Junos OS 17.4R1 版开始,服务等级 (CoS) 标准将纳入订阅者访问的限制决策中。从线卡中收集有关 CoS 资源可用性(即队列容量)的信息。在订阅者登录时,假设订阅者需要 CoS 资源,线卡会将 CoS 队列利用率报告为绑定到调度层次结构且不能自由绑定到新调度层次结构的资源的百分比。 high-cos-queue-threshold
层次结构级别的语句 [edit system services]
可以在 0% 到 90% 的范围内单独设置为每个 FPC 插槽。当给定 FPC 上的 CoS 队列利用率达到该 FPC 的配置阈值级别时,将不允许在该 FPC 上进一步登录用户。该资源监控机制提供可调整的安全裕度,可主动避免完全耗尽每个 FPC 的可用 CoS 队列资源。请参见 high-cos-queue-threshold
。
此功能仅在启用订阅者管理时可用。有关启用订阅者管理的详细信息,请参阅 配置 Junos OS 增强型订阅者管理。
从 Junos OS 19.4R1 版开始,您可以指定值 0,以防止任何订阅者受到基于队列的限制的限制。
此 CoS 资源监控功能仅根据队列做出准入决策。其他 CoS 资源不属于此标准。对于通过伪线、逻辑隧道或冗余逻辑隧道设备到达的用户,此功能不支持限制。以下硬件支持此功能:
MX240、MX480 和 MX960 路由器
MPC2E 旧版、MPC2E-NG、MPC3E-NG、MPC5E 和 MPC7E 线卡
使用 show 命令检查内存资源区域的利用率
您可以使用 show system resource-monitor fpc
命令监控 FPC 的数据包转发引擎上内存资源的利用率。过滤器内存表示用于防火墙过滤器计数器的过滤器计数器内存。每个内存区域旁边显示的星号 (*) 表示当前超过配置阈值的内存区域。资源监控命令显示要监控的不同线卡应用程序的内存水印配置值。显示的统计指标基于对单个线卡的当前内存利用率所执行的计算。ukern 内存在不同类型的线卡中是通用的,表示堆内存缓冲区。由于特定插槽中的线卡或 FPC 可以包含多个数据包转发引擎复合体,因此特定于应用的集成电路 (ASIC) 上使用的内存特定于特定的 PFE 复合体。由于所支持的不同型号的线卡采用不同的架构模型,因此可以对特定于 ASIC 的内存(下一跳和防火墙或滤波器内存)利用率百分比进行不同的解释。
通过负载限制来减少处理延迟
从 Junos OS 17.3R1 版开始,路由引擎可以使用资源监控来评估和减少线卡数据包转发引擎上的处理负载。路由引擎可以以高于数据包转发引擎处理的速率发送工作。这有时称为线卡或数据包转发引擎过载。当数据包转发引擎的工作负载过高时,可能会导致数据包处理出现明显的延迟。
资源监控使路由引擎能够通过评估其发送到数据包转发引擎的数据包的往返延迟来评估负载。较长的往返时间表示负载较高,因此数据包转发引擎上出现处理延迟的可能性就越大。适当情况下,路由引擎会减少允许完成的订阅者会话(客户端和服务)的百分比。
此功能称为负载限制或往返时间负载限制。节流可防止路由引擎过度驱动线卡,以至于操作员和后台办公系统可以看到处理延迟。它的工作原理如下:
为了监控延迟,路由引擎每秒向线卡上的数据包转发引擎发送一条回显请求消息。回显请求包括发送时的时间戳和运行序列号。消息优先级是尽力而为,以模拟线卡上最坏情况的处理延迟。
数据包转发引擎处理回显请求,并以回显回复进行响应。消息优先级较高,以便在路由引擎处理返回的数据包时将抖动降至最低。
当路由引擎收到回显回复时,它会将往返时间计算为回显请求时间戳与接收该特定序列号的回显回复时间之间的时间差。
路由引擎会将往返延迟时间与默认往返阈值 1 秒进行比较。如果测量的延迟超过连续三次行程的阈值,则路由引擎会拒绝一定比例的新订阅者的登录,从而减少建立的新客户端和服务会话数。这种减少称为节流。
内部算法根据阈值和往返时间派生节流百分比。此百分比根据该时间点的往返延迟而有所不同。
对于每连续组三个延迟测量值均超过阈值,路由引擎会增加限制 — 拒绝更多订阅者登录。
当测得的延迟小于连续三次行程的阈值时,路由引擎将卸下油门。这允许订阅者自由登录。
以太网接口 (ge、xe) 和伪线接口 (ps) 的 RTT 负载限制基于每个线卡应用,如下所示:
对于聚合以太网接口,它适用于与聚合以太网捆绑包关联的线卡集。
对于带有冗余逻辑隧道 (RLT) 的伪线接口,它适用于与锚点关联的线卡集。
在这两种情况下,路由引擎都会将确定限制的延迟值视为集中所有线卡中最长的往返延迟。
表 1 显示了当往返延迟大于内部阈值时,线卡上的用户会话在 12 秒内是如何受到限制的。此示例具有以下假设:
内部延迟阈值为 1 秒。
延迟测量每秒进行一次。
连续 3 次往返延迟测量高于往返延迟阈值后,会话创建速率降低 10%。只要超过阈值,限制就会每 3 次测量增加一次。
如果测量的延迟下降,并且在连续 3 次往返延迟测量中保持在阈值以下,则会话速率将返回到 100%。
此示例已简化。请记住,确切的节流百分比是动态确定的,并且可能每秒都不同。
时间 |
往返延迟 (ms) |
超出阈值 |
允许的会话百分比 |
---|---|---|---|
1 |
850 |
不 |
100 |
2 |
900 |
不 |
100 |
3 |
995 |
不 |
100 |
4 |
1021 |
是的 阈值超出计数 #1 |
100 |
5 |
1130 |
是的 阈值超出计数 #2 |
100 |
6 |
1158 |
是的 阈值超出计数 #3 |
90 会话速率降低了 10 % |
7 |
1127 |
是的 阈值超出计数 #1 |
90 会话速率降低了 10 % |
8 |
1135 |
是的 阈值超出计数 #2 |
90 |
9 |
1126 |
是的 阈值超出计数 #3 |
80 会话速率降低了 10 % |
10 |
1000 |
不 未超过阈值计数 #1 |
80 |
11 |
991 |
不 未超过阈值计数 #2 |
80 |
12 |
998 |
不 未超过阈值计数 #3 |
100 已删除限制 |
默认情况下,资源负载监控和往返时间限制处于启用状态。您可以使用以下任一语句禁用此功能:
no-load-throttle
在[edit system services resource-monitor]
层次结构级别上no-throttle
在[edit system services resource-monitor]
层次结构级别上
如果禁用该功能,并且数据包转发引擎变得过于繁忙,新订阅者可以登录并激活,但一段时间内没有流量流动。这种流量处理延迟可能会变得很明显。
您可以使用以下命令确认是否启用了负载限制功能,并查看该功能的各个方面的运行情况。加粗的字段特别有用。
user@host> show system resource-monitor summary Resource Usage Summary Throttle : Enabled Load Throttle : Enabled /*RTT load throttling is enabled*/ Heap Mem Threshold : 70 % IFL Counter Threshold : 95 % Round Trip Delay Threshold(ms) : 1000 /*RTT throttle value*/ Filter Counter Threshold : 100 % Expansion Threshold : 95 % CoS Queue Threshold : 100 % MFS threshold : 70 % Used : 0 Slot # 0 Client allowed : Yes Service allowed : Yes Heap memory used : 339204848 In % : 18 Average Round-trip Delay(ms) : 103 (30 ) Round-trip Delay(ms) : 103 /*RTT delay and average delay, the 30 in parentheses means that the average is for last 30 secs*/ MAX session rate allowed(%) : 100 Client denied : 1524 /*The number of new subscribers have been denied*/ Service Denied : 0 Performance Denial Client : 1524 <-- Performance Denial Service : 0 IFL Denied : 0
使用资源监视器限制订阅者
从 Junos OS 17.3R1 版开始,您还可以使用资源监控直接限制每个硬件元素支持的订阅者数。您可以指定每个机箱、线卡 (MPC)、MIC 或端口可登录的最大订阅者数。您可以将限制设置为仅一种客户端类型(DHCP、L2TP 或 PPPoE)的订阅者,也可以将限制设置为任何客户端类型的订阅者。
此功能可确保每个硬件元素的登录订阅者数量不超过网络在所需服务带宽下可以稳定服务的数量。当达到硬件元素的限制时,将拒绝该元素上的新订阅者登录,直到订阅者数量降至配置的限制以下。超过此限制的新订阅者可以连接到同一广播域中的其他硬件元素。对聚合以太网接口的一个或多个支路配置限制时,如果订阅者数量超过任一支路的值,则登录将被拒绝。
以这种方式限制订阅者会在硬件元素之间分配负载,但不提供任何类型的负载平衡。此功能还可以帮助您绘制网络容量图,并确定扩展该容量所需的硬件资源。例如,如果您提供的服务需要特定数量的内存,并且知道使用一组给定的硬件可以服务多少订阅者,则可以确定需要多少内存。或者,如果要为每个订阅者添加具有更多内存的服务,可以计算所需的额外量,将其与可用内存进行比较,然后确定是否需要配置新端口、MIC、MPC 或路由器来处理新服务。
使用资源监视器按客户端类型和硬件元素限制订阅者
除了使用资源监控来监视和管理系统内存使用情况外,您还可以使用它来直接限制每个硬件元素支持的订阅者数:机箱、线卡 (MPC)、MIC 和端口。您可以指定可以登录到其中每个元素的最大订阅者数。您可以将此限制应用于仅一种客户端类型(DHCP、L2TP 或 PPPoE)的订阅者或其中任何一种客户端类型的订阅者。在后一种情况下,该限制适用于所有三种客户端类型的会话总和。
订阅者限制可以确保每个硬件元素的登录订阅者数量不超过网络在所需服务带宽下可以稳定地服务的数量。当达到硬件元素的限制时,将拒绝该元素上的新订阅者登录,直到订阅者数量降至配置的限制以下。超过限制的新订阅者将连接到同一广播域中的另一个硬件元素。对聚合以太网接口的一个或多个支路配置限制时,如果订阅者数量超过任一支路的值,则登录将被拒绝。
以这种方式限制订阅者会在硬件元素之间分配负载,但不提供任何类型的负载平衡。此功能还可以帮助您绘制网络容量图,并确定扩展该容量所需的硬件资源。例如,如果您以特定带宽提供服务,并且知道使用一组给定的硬件可以服务多少订阅者,那么您可以确定需要多少带宽。或者,如果要添加每个订阅者具有更多带宽的服务,可以计算所需的额外带宽,将其与可用带宽进行比较,然后确定是否需要配置新的端口、MIC、MPC 或路由器来处理新服务。
CLI 使用术语 fpc
和 pic
。对于此功能, fpc
对应于 MPC 和对 pic
应于 MIC。
要对硬件元素允许的最大订阅者数设置限制:
例如,以下配置可设置 PPPoE 订阅者的机箱和 MPC 限制:
[edit system services resource-monitor subscribers-limit] user@host# edit client-type pppoe [edit system services resource-monitor subscribers-limit client-type pppoe] user@host# set chassis limit 112000 user@host# set fpc 0 limit 28000 user@host# set fpc 1 limit 28000 user@host# set fpc 2 limit 28000 user@host# set fpc 3 limit 28000
变更历史表
是否支持某项功能取决于您使用的平台和版本。使用 功能浏览器 查看您使用的平台是否支持某项功能。