时间表缓冲区大小概述
来自更快接口的大型流量突发可能导致拥塞,在延迟缓冲较小且速度较慢的接口上丢弃数据包。例如,位于网络边缘的 瞻博网络 设备可以丢弃它在通道化 T1/E1 接口上从网络核心的路由器的快速以太网或千兆位以太网接口接收到的一部分突发流量。在瞻博网络上,可针对通道化 T1/E1 和非通道化 T1/E1 接口配置大延迟缓冲区。
要确保信息流在较慢的接口上排队并正常传输,您可配置大于默认最大值的缓冲区大小。
本节包含以下主题:
可用于通道化 T1/E1 接口的最大延迟缓冲区大小
在接口上启用大延迟缓冲区功能时,更大的缓冲区可用于分配至时间表队列。可用于接口的最大延迟缓冲区大小取决于最大可用延迟缓冲区时间和接口速度,如 表 1 所示。
默认值如下:
清除通道接口 - 默认延迟缓冲区时间为 500,000 微秒 (0.5 s)。
NxDS0 接口 - 默认延迟缓冲区时间为 1,200,000 微秒 (1.2 s)。
有效线速 |
最大可用延迟缓冲时间 |
---|---|
< 4xDS0 |
4,000,000 微秒(4 秒) |
< 8xDS0 |
2,000,000 微秒(2 秒) |
< 16 个DS0 |
1,000,000 微秒(1 秒) |
<= 32xDS0 |
500,000 微秒 (0.5 s) |
<= 10 mbps |
400,000 微秒 (0.4 s) |
<= 20 mbps |
300,000 微秒 (0.3 s) |
<= 30 mbps |
200,000 微秒 (0.2 s) |
<= 40 mbps |
150,000 微秒 (0.15 s) |
您可以使用以下公式计算接口可用的最大延迟缓冲区大小:
interface speed x maximum delay buffer time = maximum available delay buffer size
例如,以下最大延迟缓冲区大小可用于 1xDS0 和 2xDS0 接口:
1xDS0—64 Kbps x 4 s = 256 Kb (32 KB)
2xDS0— 128 Kbps x 4 s = 512 Kb (64 KB)
如果配置的延迟缓冲区大小大于最大,则系统允许您提交配置,但显示系统日志警告消息,并且使用默认缓冲区大小设置,而不是配置的最大设置。
每个接口的最大vSRX缓冲区大小
对于虚拟vSRX,1 Gbps 接口的默认延迟缓冲区时间为 1 秒,最大缓冲区时间为 32 秒,最大缓冲区大小为 128 MB。使用以下 CLI 命令设置时间表的最大延迟缓冲区时间:
set class-of-service schedulers be-scheduler buffer-size temporal 32m
在逻辑 vSRX 接口上,没有特定整形速率的队列的延迟缓冲区大小可充当保证最低缓冲区大小,如果队列大小小于保证的缓冲区大小,则允许队列增长,而不会丢失任何数据包。
所有队列的保证延迟缓冲区大小总和用作池,可在没有特定整形速率的队列之间共享。
延迟缓冲区用于控制队列的大小,但不表示实际内存。数据包缓冲区池包含用于存储数据包的实际内存。
如果:
将超过总缓冲区限制。
队列大小将超过总自由缓冲区大小。
数据包缓冲区池小于 25% 可用,并且队列超过保证的最小缓冲区大小。
数据包缓冲区池仅 5% 可用(或更低)。
如果队列大小超过保证的缓冲区大小,RED 配置文件(RED 丢弃)还可以丢弃数据包。队列大小仅限于小于或等于可用共享缓冲区。
虚拟机vSRX取决于安装Junos OS版本。
延迟缓冲区大小分配方法
您可以使用时间表为每个队列指定延迟缓冲区大小。队列缓冲区可以指定为时间段(微秒)或总缓冲区的百分比或剩余缓冲区。 表 2 显示了您可以为队列中的缓冲区分配指定不同方法。
缓冲区大小分配方法 |
描述 |
---|---|
百分比 |
总缓冲区的百分比。 |
时间 |
一段时间,值(微秒)。配置时间缓冲区时,还必须配置传输速率。系统将配置的时值和传输速率的可用带宽乘以一次,以计算队列缓冲区大小。 指定时间方法时,丢弃配置文件将被分配一个静态缓冲区,而当队列缓冲区大小为满时,系统开始丢弃数据包。默认情况下,分配给其他缓冲区类型的动态缓冲区,该缓冲区使用剩余传输带宽吸收突发流量。 |
剩余 |
剩余缓冲区可用。其余为未分配给其他队列的百分比缓冲区。例如,如果将 40% 的延迟缓冲区分配给队列 0,则允许队列 3 保持默认 5% 的分配,然后将剩余部分分配给队列 7,则队列 7 使用大约 55% 的延迟缓冲区。 或者,您也可指定用于按已分配计划程序缓冲区大小的剩余部分百分比。如果未指定剩余百分比,则其余值将相同共享。 |
队列的延迟缓冲区大小
您可使用时间表为队列指定延迟缓冲区大小。系统根据在时间表中为队列指定的缓冲区分配方法计算队列的缓冲区大小。有关 不同缓冲区分配 方法,请参阅表 2,以及表 3 以计算缓冲区大小。
缓冲区大小分配方法 |
队列缓冲区计算 |
例子 |
---|---|---|
百分比 |
available interface bandwidth x configured buffer size percentage maximum delay buffer time x = queue buffer |
假设您在 1xDS0 接口上将队列配置为使用 30% 的可用延迟缓冲区大小。系统使用最大可用延迟缓冲区时间(4 秒)并分配队列 9600 字节的延迟缓冲区: 64 Kbps x 0.3 x 4 s=76,800 位=9,600 字节 |
时间 |
available interface bandwidth x configured transmit rate percentage configured temporal buffer size x = queue buffer |
假设您在 1xDS0 接口上将队列配置为使用 3,000,000 微秒(3 秒)的延迟缓冲区,而将传输速率配置为 20%。队列接收 4800 字节的延迟缓冲区: 64 Kbps x 0.2 x 3 s=38,400 位=4,800 字节 如果配置的时间值超过最大可用延迟缓冲区时间,则队列将分配给其他队列缓冲区后剩余的缓冲区。假设您在 1xDS0 接口上配置了 6,000,000 微秒的时间值。由于此值超过允许的最大值 4,000,000 微秒,因此队列将分配剩余的延迟缓冲区。 |
将缓冲区大小指定为百分比时,系统将忽略传输速率,并仅基于缓冲区大小百分比计算缓冲区大小。