Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

在缓冲区内配置大CoS

您可使用 命令与 buffer-size-temporal 命令组合配置非常大的延迟 q-pic-large-buffer 缓冲区。与 buffer-size temporal 结合使用的选项可以创建 q-pic-large-buffer 接口上一个或多个队列的超大延迟缓冲区分配。

注意:

如果配置的缓冲区大小过低,转发类的缓冲区大小将默认为 9192,并显示以下日志消息:"fwdd_cos_set_delay_bandwidth:队列:16 延迟缓冲区大小 (1414) 过低,设置为默认 9192。"

Configuring Large Delay Buffers

以下配置适用于以下示例:

  1. 在一个接口上配置两个 VLAN(一个入口,一个出口)。此配置最初未定义接口整形速率。
  2. q-pic-large-buffer除了队列选项之外,在同一 PIC buffer-size temporal 上启用 选项,以在队列上创建大缓冲区:
    注意:

    不使用 CLI 时,安全警告不会提供任何 buffer-size temporal 警告 q-pic-large-buffer。使用 时 buffer-size temporal,验证配置是否还包含 q-pic-large buffer 命令。

  3. 为四个队列定义四个转发类(队列名称):
  4. 配置时间表图中包含的转发类(队列名称),这些转发类应用于出口 VLAN:
  5. 设置队列优先级。最初仅定义队列优先级,而不是传输速率或缓冲区大小。

Example: Simple Configuration Using Four Queues

此配置为四个队列的每一个分配 12,500,000 字节的缓冲区。为避免超过延迟缓冲区计算的限制,此初始示例没有接口整形速率、时间表传输速率或时间表缓冲区大小百分比配置。

  1. 指定四个队列每一个的最大 4 秒延迟缓冲区:

    在部分 buffer-size temporal 或所有队列上指定使用隐式(默认)或显式传输速率百分比作为这些队列的时间值缓冲区大小百分比。由于没有明确指定的传输速率百分比,因此可将 100% 除以配置的队列数(在时间表图中配置时间表的队列),以获得隐式(默认)每队列传输速率百分比。每个队列都获得 100% /4 = 25% 的隐式(默认)传输速率。

    在这种情况下,指定每个队列上的最大 4 秒延迟 接口上无整形速率,且无隐式(默认)每队列传输速率为 25%,接口上所有时间 4m 队列的总缓冲区 = 4 秒 * 100,000,000 个最大接口 bps/8 位/字节 = 4 秒 * 12,500,000 字节 = 50,000,000 字节。指定时间 4m 的每个队列获取 25% * 50,000,000 = 12,500,000 字节。

  2. 为接口添加 4 Mbps 的整形速率:

    接口上所有时间 4m 队列的总缓冲区 = 4 秒 * 4,000,000 bps 整形速率/8 位/字节 = 4 秒 * 500,000 字节 = 2,000,000 字节。因此,指定时间 4m 的每个队列接收 25% * 2,000,000 = 500,000 字节。

buffer-size temporal在任意接口transmit-rate percentbuffer-size percent队列上使用时,如果同时在任何接口队列上使用 命令、命令或命令,则缓冲区大小计算将变得更复杂,并且可能达到可用队列深度的限制。/var/log/messages如果配置尝试超过可用内存,则提交时,文件中将出现两条系统日志消息,接口服务类配置将被忽略,接口服务类配置将恢复为双队列默认值:

在同时 buffer-size temporal 配置 和 transmit-rate percent buffer-size percent或 或 两者时,必须监控系统日志以查看是否达到了可用队列深度限制。

Example: Using buffer-size temporal with Explicit transmit-rate percent Commands

要向全部四个队列添加显式传输速率:

例如,如果接口整形为 4 Mbps,则队列的传输速率百分比为 10 意味着特定队列的带宽共享为 0.4 Mbps。队列被分配了总缓冲区的 2,000,000 字节中的部分,可用于此接口上的时间队列,与传输速率成正比。四个队列分别获得 200,000、500,000、500,000 和 800,000 字节的延迟缓冲区。

为避免超过队列深度限制buffer-size temporal transmit rate percent buffer-size percentbuffer-size temporal并触发系统日志消息和默认配置行为,在使用 和 以及 其他(非时间)队列配置队列时,必须遵循以下配置规则:当将接口上的一个或多个队列配置为 时,显式配置的传输速率百分比和其他非时间队列的总和明确配置的缓冲区大小百分比不得超过 100 百分比。

如果时间队列传输速率百分比总和和非时间队列 缓冲区大小百分比超过 100queue mem underflow Failed to compute scheduler params%,则和系统日志消息显示在消息日志中,接口的显式配置的 CLI CoS 配置将被忽略,接口将恢复为双队列默认 CoS 配置。

buffer-size temporal 队列上指定时 transmit-rate percent ,如果在同一队列上配置,则配置的队列深度基于指定的获取的队列部分带宽 transmit-rate percent

除了使用缓冲区大小时间为一个或多个队列指定的时间延迟时间之外,还会自动为整个接口计算另一个延迟时间。此接口延迟时间跨所有非时间队列分配,与隐式(默认)或显式传输速率百分比成正比。如果未 q-pic-large-buffer 启用,接口延迟时间默认为 100 毫秒。如表 1 所示,启用 q-pic-large-buffer 时,接口延迟时间根据接口的已配置整形速率计算。由于上文示例中配置的整形速率为 4 Mbps (> 2,048,000 bps),因此配置的接口延迟时间为 100 msec。

表 1: q-pic-large-buffer 启用接口延迟时间

配置的整形速率 (bps)

接口延迟时间 (msec) 启用 q-pic-large-buffer 时用于非时间队列

默认延迟时间 使用 (msec) 无 q-pic-large-buffer

64,000-255,999

4000

100

256,000 - 511,999

2000

100

512,000 - 102,3999

1000

100

1,024,000 - 2,047,999

500

100

>= 2,048,000

100

100

此示例正确计算了时间队列和非时间队列的延迟缓冲区限制:

  1. 替代 buffer-size percent 队列 buffer-size temporal 0 和 1:

    这将删除硬指定的 4 秒缓冲时间要求,并将其替换为非时间队列总接口延迟时间的 10% (或 25%) 的成正比限制。这两种情况下,队列深度均基于特定队列的接口带宽份额计算。总接口非时间队列内存 = 整形速率 * 接口延迟时间(表 1) = 4 Mbps * 0.1 秒 = 500,000 字节/秒 * 0.1 秒 = 50,000 字节, 因此队列 0 和 1 分别获得 10% * 50,000 = 5000 字节和 25% * 50,000 = 12,500 字节延迟缓冲区。

  2. buffer-size temporal 队列 2 和 3 上配置:

    队列 2 和 3 仍分别获得 500,000 和 800,000 字节的延迟缓冲区,这两者之前计算得出的。此配置会默认以下规则:时间队列传输速率百分比(25% + 40% = 65%)以及非时间队列缓冲区大小百分比(10% + 25% = 35%) 之和不超过 100%(65% + 35% <= 100%)。

以下示例超过延迟缓冲区限制,将触发系统日志消息和默认双队列服务类行为。

将非时间队列的缓冲区大小百分比从 25% 提高至 26% 1:

这违反非时间队列缓冲区大小百分比(10% + 26% = 36%)以及时间队列传输速率百分比(25% + 40% = 65%) 现在超过 100% (36% + 65% = 101%)的配置规则。因此,文件中将出现以下两条系统日志 /var/log/messages 消息:

超过延迟缓冲区限制时,CLI 配置的服务等级设置将被使用,并且会为接口分配默认服务等级配置(默认时间表图)。它使用两个队列:转发类尽力服务(队列 0)的传输速率为 95% 和缓冲区大小百分比 95,转发类网络控制(队列 3)的传输速率百分比为 5 和缓冲区大小百分比 5。