订阅者管理和服务的资源监控
订阅者管理和服务的资源监控概述
Junos OS 支持使用 CLI 和 SNMP MIB 查询的资源监控功能。您可以使用此实用程序为应用或虚拟路由器配置足够的余量(内存空间限制),以确保系统稳定性,特别是 MX 系列路由器上基于 I 芯片的线卡和基于 Trio 的 FPC 的运行状况和运行效率。
当内存利用率(ukernel 内存或 ASIC 内存)达到特定阈值时,系统作会影响线卡的运行状况和流量处理稳定性。这种对系统性能的权衡可能不利于支持实时流量和协议。
除了能够配置阈值以在超过资源的特定阈值时引发错误日志之外,您还可以使用 SNMP MIB 查询来监控阈值和资源利用率。
以下部分介绍 Junos OS 提供的资源监控类型:
- 使用水印进行线卡资源监控
- 基于 CoS 资源容量限制订阅者负载
- 使用 show 命令检查内存资源区域的利用率
- 负载节流,减少处理延迟
- 使用资源监视器限制订阅者
- 订阅者管理和服务资源监控的变更历史记录
- 针对订阅者管理和服务行为的平台特定资源监控
使用水印进行线卡资源监控
您可以为线卡资源(例如 ukern 内存(堆)、下一跳 (NH) 内存以及防火墙或过滤器内存)配置水印或检查点值,使其对于基于 Trio 的线卡和基于 I 芯片的线卡保持一致。NH内存水印仅适用于封装内存(输出WAN静态RAM内存)。封装存储器特定于 I 芯片,不适用于基于 Trio 的芯片。当超过配置的水印时,将触发错误日志。如果资源的使用超过特定阈值,则会生成警告系统日志消息,以通知已超过阈值。然后,您可以根据自己的网络需求,决定是否要终止任何现有订阅者和服务,以防止系统过载并导致故障。
此功能从每个线卡收集输入,并使用已知的内部端口将此统计详细信息传输到路由引擎进程。此信息由例程引擎上的守护程序扫描,并使用会话数据库中内置的共享内存空间,为超出阈值条件生成警告消息。
您可以在层次结构级别配置 [edit system services] 以下参数,以指定所有内存空间或区域通用的高阈值,以及 DPC 和 MPC 上不同内存块的水印值:
-
使用语句为
resource-monitor high-threshold value所有内存区域(如堆或 ukernel、下一跃点和封装以及防火墙过滤器内存)生成的高阈值,超过此值将生成的警告或错误日志。 -
使用语句使用
resource-monitor free-nh-memory-watermark percentage水印值监控下一跃点的可用内存空间百分比。 -
使用语句使用
resource-monitor free-heap-memory-watermark percentage水印值监视的 ukernel 或堆内存所使用的可用内存空间百分比。 -
用于防火墙和过滤器内存的可用内存空间百分比,以使用语句使用
resource-monitor free-fw-memory-watermark percentage水印值进行监控。此功能默认启用,您无法手动禁用它。可用下一跃点内存百分比的水印值的默认值和配置值也适用于封装内存。
可用 ukernel 或堆内存、下一跳内存和防火墙过滤器内存百分比的默认水印值如下:
-
free-heap-memory-watermark—20
-
free-nh-memory-watermark—20
-
free-fw-memory-watermark—20
基于 CoS 资源容量限制订阅者负载
服务等级 (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 增强型订阅者管理。
使用 show 命令检查内存资源区域的利用率
您可以使用该 show system resource-monitor fpc 命令监控 FPC 的数据包转发引擎上的内存资源利用率。过滤器内存表示用于防火墙过滤器计数器的过滤器计数器内存。每个内存区域旁边显示的星号 (*) 表示当前超出配置阈值的内存区域。资源监控命令显示要监控的不同线卡应用程序的内存水印配置值。显示的统计指标基于对各个线卡的当前内存利用率执行的计算。ukern内存在不同类型的线卡中是通用的,表示堆内存缓冲区。由于特定插槽中的线卡或 FPC 可以包含多个数据包转发引擎复合体,因此特定于应用集成电路 (ASIC) 上使用的内存特定于特定 PFE 复合体。由于支持不同变体的线卡采用不同的架构模型,因此 ASIC 特定的内存(下一跳和防火墙或过滤器内存)利用率百分比可能会有不同的解释。
负载节流,减少处理延迟
路由引擎可以使用资源监控来评估和减少线卡数据包转发引擎上的处理负载。路由引擎发送工作的速率可能高于数据包转发引擎可以处理的速率。这有时称为过度驱动线卡或数据包转发引擎。当数据包转发引擎上的工作负载过高时,可能会导致数据包处理出现明显延迟。
资源监控使路由引擎能够通过评估发送到数据包转发引擎的数据包的往返延迟来评估负载。往返时间越长表示负载越高,因此数据包转发引擎上处理延迟的可能性就越大。适当情况下,路由引擎会降低允许完成的订阅者会话(客户端和服务)的百分比。
此功能称为负载限制或往返时间负载限制。节流可防止路由引擎过度驱动线卡,以至于操作员和后台系统可以看到处理延迟。它的工作原理是这样的:
为了监控延迟,路由引擎每秒向线卡上的数据包转发引擎发送一条回显请求消息。回显请求包括发送时间戳和正在运行的序列号。消息优先级为尽力而为,以模拟线卡上最坏情况下的处理延迟。
数据包转发引擎处理回显请求,并使用回显回复进行响应。消息优先级较高,可最大程度地减少路由引擎处理返回的数据包时的抖动。
当路由引擎收到回显回复时,它会将往返时间计算为回显请求时间戳与收到该特定序列号的回显回复的时间之间的时间差。
路由引擎将往返延迟时间与默认的往返阈值 1 秒进行比较。如果测得的延迟长于连续三趟行程的阈值,路由引擎将拒绝一定百分比的新订户登录,从而减少建立的新客户端和服务会话数。这种减少称为限制。
内部算法根据阈值和往返时间推导出限制百分比。该百分比根据该时间点的往返延迟而变化。
路由引擎会增加油门,拒绝更多订阅者登录,每连续三个延迟测量值均超过阈值。
当测量的延迟小于连续三趟的阈值时,路由引擎将移除油门。这允许订阅者自由登录。
RTT 负载限制基于每线卡适用于以太网接口 (ge、xe) 和伪线接口 (ps),如下所示:
-
对于聚合以太网接口,它适用于与聚合以太网捆绑包关联的一组线卡。
-
对于具有冗余逻辑隧道 (RLT) 的伪线接口,它适用于与锚点关联的线卡集。
在这两种情况下,路由引擎都会将确定限制的延迟值视为集中所有线卡中最长的往返延迟。
表 1 显示了当往返延迟大于内部阈值时,线卡上的用户会话在 12 秒内是如何受到限制的。此示例具有以下假设:
-
内部延迟阈值为 1 秒。
-
延迟测量每秒发生一次。
-
连续 3 次往返延迟测量高于往返延迟阈值后,会话创建率将降低 10%。只要超过阈值,节流就会每 3 次测量增加一次。
-
如果测得的延迟下降并保持在连续 3 次往返延迟测量的阈值以下,则会话速率将返回到 100%。
此示例已经过简化。请记住,确切的节流百分比是动态确定的,并且可能会逐秒变化。
| 时间 |
往返延迟(毫秒) |
超过阈值 |
允许的会话百分比 |
|---|---|---|---|
| 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 或路由器来处理新服务。
订阅者管理和服务资源监控的变更历史记录
是否支持某项功能取决于您使用的平台和版本。使用 功能资源管理器 确定您的平台是否支持某个功能。
| 版本 | 说明 |
|---|---|
| 17.3 | 从 Junos OS 17.3R1 版开始,您还可以使用资源监控直接限制每个硬件元素支持的订阅者数。 |
| 17.4 | 从 Junos OS 17.4R1 版开始,服务等级 (CoS) 标准已纳入订阅者访问的限制决策中。 |
| 19.4 | 从 Junos OS 19.4R1 版开始,您可以指定值 0 以防止任何订阅者受到基于队列的限制。 |
针对订阅者管理和服务行为的平台特定资源监控
| 平台 |
差异 |
|---|---|
| MX240、MX480 和 MX960 路由器,搭配 MPC2E 旧版、MPC2E-NG、MPC3E-NG、MPC5E 和 MPC7E 线卡 | CoS 资源监控功能仅支持基于队列的准入决策。其他 CoS 资源不在此标准范围内。此功能不支持对通过伪线、逻辑隧道或冗余逻辑隧道设备到达的用户进行限制。 |
| MX80、MX104 路由器 |
支持资源监控配置。 |
| MX240、MX480、MX960、MX2010 和 MX2020 路由器 |
以下线卡支持在 MX240、MX480、MX960、MX2010 和 MX2020 路由器上进行资源监控:
|
使用资源监视器按客户端类型和硬件元素限制订阅者
除了使用资源监控来监控和管理系统内存使用情况外,您还可以使用它直接限制每个硬件元素(机箱、线卡 (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
变更历史表
是否支持某项功能取决于您使用的平台和版本。使用 功能资源管理器 确定您的平台是否支持某个功能。