了解 CoS 缓冲区配置
Junos 使用整个 PFE 通用的数据包缓冲区内存将数据包存储在接口队列上。此共享缓冲区内存具有单独的入口和出口核算功能,用于做出接受、丢弃或暂停决策。由于交换机具有单独的入口和出口核算功能的单个内存池,因此从入口和出口两个角度都可以使用全部缓冲区内存量。数据包在进出设备时会进行计算,但不存在数据包到达入口缓冲区然后移动到出口缓冲区的概念。 表1列出了单个交换机的具体常用缓冲区内存量。
| 交换机 |
通用数据包缓冲区内存 |
|---|---|
| QFX5100、EX4600 |
12MB |
| QFX5110、QFX5200-32C |
16MB |
| QFX5200-48Y |
22MB |
| QFX5120 |
32MB |
| QFX5130 |
132MB |
| QFX5210 |
42MB |
| QFX5220 |
64MB |
| QFX5230 |
112MB |
| QFX5240 |
165MB |
| QFX5700 |
132MB |
从入口和出口角度来看,缓冲区分为两个池:
-
共享缓冲区 是交换机根据需要动态分配给端口的全局内存池,因此缓冲区将在交换机端口之间共享。
-
专用缓冲区 是在交换机端口之间平均分配的内存池。每个端口都会收到专用于每个端口的最小保证缓冲区空间量,端口之间不共享。
无损流量是您启用基于优先级的流量控制 (PFC) 以确保无损传输的流量。无损流量是指启用了以太网暂停 (IEEE 802.3x) 的链路上的尽力而为流量。
设备保留不可配置的缓冲区空间,以确保端口和队列收到最小的内存分配。您可以配置系统如何使用剩余的缓冲区空间来优化网络流量组合的分配。您可以配置用作共享缓冲区空间与专用缓冲区空间的可用缓冲区空间百分比。您还可以配置如何将共享缓冲区空间分配给不同类型的流量。您可以针对网络上的流量优化缓冲区设置。
默认服务等级配置提供两个无损转发类(fcoeno-loss)和 ,一个尽力服务单播转发类,一个网络控制流量转发类,以及一个多目的地(组播、广播和目标查找失败)转发类。
每个默认转发类都映射到不同的默认输出队列。默认配置分配缓冲区的方式可支持适量的无损流量,同时仍能够在尽力而为的流量传输中吸收突发。
更改缓冲区设置会更改缓冲区吸收突发流量和处理无损流量的能力。例如,流量大多为尽力而为的网络需要将大部分共享缓冲区空间分配给尽力而为缓冲区。这提供了深度、灵活的缓冲区,可以以最小的数据包丢失吸收突发流量,但会牺牲无损流量的缓冲区可用性。
相反,流量大多为无损的网络需要将大部分共享缓冲区空间分配给无损余量缓冲区。这样可以防止无损流量上丢包,但代价是有效吸收突发的尽力而为流量。
更改缓冲区配置是一个破坏性事件。 所有 端口上的流量将停止,直到缓冲区重新编程完成。
本文介绍缓冲区架构和设置:
缓冲池
从入口和出口角度来看,PFE 缓冲区被拆分为两个主池:一个共享缓冲池和一个专用缓冲池,以确保对每个端口的最小分配。您可以配置分配给两个池中每个池的缓冲区空间量。保留一部分缓冲区空间,以便始终为每个端口提供最小数量的共享和专用缓冲区空间。
-
共享缓冲池 — 交换机上的所有端口在需要缓冲区时动态共享的全局内存空间。共享缓冲池进一步划分为缓冲区,以实现尽力而为的单播、尽力而为的多目的地(广播、组播和目标查找失败)和 PFC(无损)流量类型。您可以将全局共享内存空间分配给缓冲区分区,以更好地支持不同的网络流量混合。共享缓冲池越大,交换机吸收突发流量的能力就越好,因为可用于流量的共享内存就越多。
-
专用缓冲池 — 平均分配给每个端口的预留全局内存空间。交换机会保留用户不可配置的最小专用缓冲池。您可以按每个端口、每个队列在端口队列之间划分端口的专用缓冲区分配。(例如,这使您能够将更多缓冲区空间专用于传输无损流量的队列。)
更大的专用缓冲池意味着每个端口的专用缓冲区空间更大,因此一个端口上的拥塞不太可能影响另一个端口上的流量,因为流量不需要使用那么多共享缓冲区空间。但是,专用缓冲池越大,交换机可以处理的突发流量就越少,因为动态共享缓冲区内存较少。
您可以通过配置入口和出口共享缓冲区百分比,配置缓冲区空间的可用未预留部分分配给全局共享缓冲池和专用共享缓冲池的方式。
缺省情况下,100% 的可用未预留缓冲区空间分配给共享缓冲池。如果更改分配给共享缓冲区的空间百分比,则未分配给共享缓冲区的可用缓冲区空间将分配给专用缓冲区。例如,如果将入口共享缓冲池配置为 80%,则剩余的 20% 可用缓冲区空间将分配给专用缓冲池,并在端口之间平均分配。
当 100% 的可用(用户可配置)缓冲区分配给共享缓冲池时,交换机仍会保留一个最小专用缓冲池。
您可以分别配置入口和出口共享缓冲池分配。您还可以对入口和出口共享缓冲池进行分区,以便将共享缓冲池的百分比分配给特定类型的流量。如果不使用默认配置或建议的配置之一,请特别注意无损余量缓冲区的入口配置(这些缓冲区处理拥塞期间的PFC暂停)和尽力而为缓冲区的出口配置,以处理播入拥塞(多个同步源并行向同一接收器发送数据)。
除了共享缓冲池和专用缓冲池之外,还有一个小型入口全局余量缓冲池,该缓冲池是保留的,不可配置。
当发生缓冲区空间争用时,交换机将使用内部算法来确保缓冲池在竞争流之间公平分配。当给定流量的流量超过为该流预留的专用端口缓冲区量时,该流量将开始消耗动态共享缓冲池中的内存。相互竞争的流与其他也已耗尽其专用缓冲区的流争夺共享缓冲区内存。没有拥塞,就没有竞争流量。
无损流 (PFC) 与以太网暂停的缓冲区处理
当我们在以下部分中讨论无损缓冲区时,我们指的是处理您启用 PFC 以确保无损传输的流量的缓冲区。无损缓冲区不会用于启用以太网暂停 (IEEE 802.3x) 的链路上的尽力而为流量。无损入口和出口共享缓冲区以及入口无损余量共享缓冲区仅用于启用 PFC 的流量。
要支持无损流,您必须配置相应的数据中心桥接功能(PFC、DCBX 和 ETS)和调度属性。
共享缓冲池和分区
共享缓冲池是一个全局内存空间,交换机上的所有端口在需要缓冲区时动态共享该内存空间。交换机使用共享缓冲池来吸收端口专用缓冲池耗尽后的突发流量。
您可以将入口共享缓冲池和出口共享缓冲池分为三个分区,以便将每个缓冲池的百分比分配给不同类型的流量。对入口或出口共享缓冲池进行分区时:
-
如果显式配置一个入口共享缓冲区分区,则必须显式配置所有三个入口共享缓冲区分区。(您可以显式配置所有三个入口分区,或者对所有三个入口分区使用默认设置。)
如果显式配置一个出口共享缓冲区,则必须显式配置所有三个出口共享缓冲区分区。(您可以显式配置所有三个出口分区,或者对所有三个出口分区使用默认设置。)
如果在配置入口或出口共享缓冲区时未显式配置所有三个分区,则交换机将返回提交错误。
-
三个入口共享缓冲区分区的总百分比必须恰好为 100%。
三个出口共享缓冲区分区的总百分比必须恰好为 100%。
显式配置入口或出口共享缓冲区分区时,如果三个分区的总百分比不等于 100%,交换机将返回提交错误。
-
如果对一组共享缓冲区进行显式分区,则不必对另一组共享缓冲区进行显式分区。例如,您可以显式配置入口共享缓冲区,并使用默认的出口共享缓冲区分区。但是,如果更改入口缓冲池的缓冲区以匹配预期的流量类型,则可能还希望更改出口缓冲池的缓冲区以匹配这些流量。
您可以配置分配给共享缓冲池的可用未预留缓冲区空间的百分比。未分配给共享缓冲池的空间将添加到专用缓冲池中,并在端口之间平均分配。默认配置会将 100% 的未预留入口和出口缓冲区空间分配给共享缓冲区。
通过配置入口和出口共享缓冲池分区,您可以为网络主要承载的流量类型分配更多的缓冲区,并为其他流量分配更少的缓冲区。
Ingress Shared Buffer Pool Partitions
您可以配置三个入口缓冲池分区:
-
无损缓冲区 — 用于所有无损入口流量的共享缓冲池。建议将 5% 作为无损缓冲区的最小值。
-
无损余量缓冲区 — 用于断言暂停时接收的数据包的共享缓冲池。如果在端口上的优先级上启用了 PFC,则当端口向连接的对等方发送暂停消息时,端口将使用余量缓冲区来存储在端口发送暂停消息和对等方暂停流量后最后一个数据包到达之间到达的数据包。无损余量缓冲区的最小值为 0(零)百分比。(无损裕量缓冲区是唯一推荐值可以小于 5% 的缓冲区。
-
有损缓冲区 — 所有尽力而为入口流量(尽力而为单播、多目的地和严格高优先级流量)的共享缓冲池。我们建议将 5% 作为尽力而为缓冲区的最小值。
入口无损、无损余量和尽力而为缓冲区分区的总百分比值必须恰好为 100%。如果缓冲区百分比的总和大于 100% 或小于 100%,交换机将返回提交错误。如果显式配置入口共享缓冲区分区,则必须显式配置所有三个入口缓冲区分区,即使无损余量缓冲区分区的值为 0(零)百分比也是如此。
Egress Shared Buffer Pool Partitions
您可以配置三个出口缓冲池分区:
-
无损缓冲区 — 所有无损出口队列的共享缓冲池。建议将 5% 作为无损缓冲区的最小值。
-
有损缓冲区 — 所有尽力而为出口队列(尽力而为、单播和严格高优先级队列)的共享缓冲池。我们建议将 5% 作为尽力而为缓冲区的最小值。
-
组播缓冲区 — 所有多目的地(组播、广播和目标查找失败)出口队列的共享缓冲池。建议将 5% 作为组播缓冲区的最小值。
出口无损、有损和组播缓冲区分区的总百分比值必须恰好为 100%。如果缓冲区百分比的总和大于 100% 或小于 100%,交换机将返回提交错误。必须显式配置所有出口缓冲区分区,并且值应至少为 5%。如果显式配置出口共享缓冲区,则必须显式配置所有三个出口缓冲区分区,并且每个分区的值应至少为 5%。
专用端口缓冲池和队列的缓冲区分配
全局专用缓冲池是平均分配给每个端口的内存,因此每个端口都会收到有保证的最小缓冲区空间量。端口之间不会共享专用缓冲区。每个端口接收相等比例的专用缓冲池。
当流量进出交换机时,交换机端口使用其专用缓冲区来存储数据包。如果专用缓冲区不足以处理流量,交换机将使用共享缓冲区。增加专用缓冲池的唯一方法是将共享缓冲池从其默认值 100% 的可用未保留缓冲区减少。
专用缓冲区空间量不可由用户配置,取决于分配给共享缓冲区的可用非预留缓冲区的百分比。(专用缓冲区空间等于最小保留端口缓冲区加上未分配给共享缓冲池的剩余可用非保留缓冲区。
如果将 100% 的可用未预留缓冲区分配给共享缓冲池,交换机仍会保留一个最小专用缓冲池。
共享缓冲池越大,端口之间的突发吸收就越好。专用缓冲池越大,每个端口的专用缓冲区空间就越大。专用缓冲区空间越大,一个端口上的拥塞影响另一个端口上的流量的可能性就越小,因为流量不需要使用那么多共享缓冲区空间。
Allocating Dedicated Port Buffers to Queues
您可以通过在调度器配置中包含 buffer-size 该语句,在端口队列之间划分出口端口的专用缓冲区分配。这样您就可以控制每个端口、每个队列的出口端口专用缓冲区分配。(例如,这使您能够将更多缓冲区空间专用于传输无损流量的队列,或者阻止端口为不承载流量的队列保留缓冲区。出口专用端口缓冲区分配是一种分层结构,可在端口之间平均分配全局专用缓冲池,然后在端口队列中划分每个端口的分配。
默认情况下,端口在其出口队列中分配专用缓冲区的比例与默认调度器为流量设置的最低保证传输速率(选项 transmit-rate )的比例相同。只有默认调度器中包含的队列才能按照 表 2 所示的比例接收带宽和专用缓冲区:
| 转发类 |
队列 |
最小保证带宽 ( |
预留专用端口缓冲区的比例 |
|---|---|---|---|
| 尽力服务 |
0 |
5% |
5% |
| FCoE |
3 |
35% |
35% |
| 无损耗 |
4 |
35% |
35% |
| 网络控制 |
7 |
5% |
5% |
| MCcast |
8 |
20% |
20% |
在默认配置中,除 表 2 所示的出口队列外,任何出口队列均不会接收专用端口缓冲区分配。
交换机使用分层调度来控制端口和队列带宽分配,如 了解 CoS 分层端口调度 (ETS) 中所述,并在 示例:配置 CoS 分层端口调度 (ETS) 中所示。对于出口队列缓冲区大小配置,将流量控制配置文件(包括队列调度器信息)连接到端口时,端口上的专用出口缓冲区将按照调度程序中配置的队列进行划分。
如果您不想使用默认的专用端口缓冲区分配给队列,请使用连接到端口的调度器中的选项 buffer-size 来配置队列分配。您可以通过两种方式配置队列的专用缓冲区分配:
-
百分比 — 当队列映射到调度程序且调度程序连接到端口时,队列接收指定百分比的专用端口缓冲区。
-
作为余数 — 在端口为具有显式缓冲区大小百分比配置的队列提供服务后,剩余的专用端口缓冲区空间将平均分配给调度器附加到的其他队列。(队列没有默认或显式调度程序意味着该队列没有专用缓冲区分配。如果配置调度程序,但未将缓冲区大小指定为百分比,则 剩余部分 为默认设置。
端口上所有队列的所有显式配置的缓冲区大小百分比之和不能超过 100%。
Configuring Dedicated Port Buffer Allocation to Queues
在包含多个转发类集且多个转发类映射到多个调度程序的端口配置中,将端口专用缓冲区分配给队列取决于缓冲区大小配置为显式百分比的队列与配置(或默认为) remainder 该选项的队列的混合。
演示使用百分比和余数选项如何影响队列专用端口缓冲区分配的最佳方法是显示队列缓冲区分配示例,然后展示将另一个转发类(队列)添加到端口时队列缓冲区分配如何更改。
表 3 显示了一个初始配置,其中包括四个转发类集、五个默认转发类(映射到这些转发类的五个默认队列)、 buffer-size 选项配置以及每个队列的缓冲区分配。 表 4 显示了将另一个转发类(尽力而为的 2,映射到队列 1)添加到尽力而为转发类集后的相同配置。比较每个表中的缓冲区分配,即可了解当您使用余数和显式百分比为不同队列配置缓冲区分配时,添加另一个队列将如何影响缓冲区分配。
| 转发类集(优先级组) |
转发类 |
队列 |
调度器缓冲区大小配置 |
每个队列的缓冲区分配(百分比) |
|---|---|---|---|---|
| fc 集 be |
尽力服务 |
0 |
10% |
10% |
| FC 设置无损 |
FCoE |
3 |
20% |
20% |
| 无损耗 |
4 |
40% |
40% |
|
| fc-set-strict-high |
网络控制 |
7 |
余数 |
15% |
| fc-set-mcast |
MCcast |
8 |
余数 |
15% |
在第一个示例中,70% 的出口端口专用缓冲池被显式分配给尽力而为、FCoE 和无损队列。端口专用缓冲池的剩余 30% 在使用 remainder 该选项的两个队列(network-control 和 mcast)之间分配,因此每个队列接收专用缓冲池的 15%。
现在,我们将另一个转发类(队列)添加到尽力服务优先级组 (fc-set-be),并为其配置剩余的缓冲区大小,而不是配置特定的百分比。由于第三个队列现在共享剩余的专用缓冲区,因此共享剩余的队列接收的专用缓冲区较少,如表 4 所示。具有显式配置百分比的队列接收配置的专用缓冲区百分比。
| 优先级组 (fc-set) |
转发类 |
队列 |
调度器缓冲区大小配置 |
每个队列的缓冲区分配(百分比) |
|---|---|---|---|---|
| fc 集 be |
尽力服务 |
0 |
10% |
10% |
| 尽力服务 2 |
1 |
余数 |
10% |
|
| FC 设置无损 |
FCoE |
3 |
20% |
20% |
| 无损耗 |
4 |
40% |
40% |
|
| fc-set-strict-high |
网络控制 |
7 |
余数 |
10% |
| fc-set-mcast |
MCcast |
8 |
余数 |
10% |
这两个表显示了端口如何划分在为具有显式配置的专用缓冲区空间百分比的队列提供服务后剩余的专用缓冲区空间。
共享缓冲区空间与专用缓冲区空间之间的权衡
共享缓冲区空间和专用缓冲区空间之间的权衡是:
-
共享缓冲区可以更好地吸收突发流量,因为端口可以根据需要使用更大的动态缓冲区池来处理突发流量。但是,所有耗尽其专用缓冲区空间的流都会争夺共享缓冲池。较大的共享缓冲池意味着较小的专用缓冲池,因此共享缓冲池的竞争更加激烈,因为更多的流耗尽了其专用缓冲区分配。共享缓冲区空间过多会导致没有一个流收到太多共享缓冲区空间,以便在许多流争用该空间时保持公平。
-
专用缓冲区为每个端口提供有保证的缓冲区空间。专用缓冲池越大,一个端口上的拥塞影响另一个端口上的流量的可能性就越小,因为流量不需要使用那么多共享缓冲区空间。但是,共享缓冲区空间越少,意味着动态吸收突发流量的能力越差。
为了获得最佳的突发吸收效果,交换机需要足够的专用缓冲区空间,以避免对共享缓冲区空间的持续竞争。当较少流量争夺共享缓冲区时,需要共享缓冲区空间来吸收突发流量的流量会接收更多的共享缓冲区,因为耗尽其专用缓冲区空间的流量较少。
默认配置和针对不同流量场景推荐的配置将 100% 的用户可配置内存空间分配给全局共享缓冲池,因为为专用缓冲区预留的空间量提供了足够的空间来避免动态共享缓冲区的持续竞争。这样会导致争夺共享缓冲区的流量减少,因此竞争流量会接收更多的缓冲区空间。
缓冲区消耗顺序
总缓冲池分为入口和出口共享缓冲池和专用缓冲池。当流量流经交换机时,缓冲区空间的使用顺序取决于流量类型。
在入口时,缓冲区消耗的顺序为:
-
尽力而为的单播流量:
-
专用缓冲区
-
共享缓冲区
-
全局余量缓冲区(非常小)
-
-
无损单播流量:
-
专用缓冲区
-
共享缓冲区
-
无损裕量缓冲区
-
全局余量缓冲区(非常小)
-
-
多目的地流量:
-
专用缓冲区
-
共享缓冲区
-
全局余量缓冲区(非常小)
-
在出口时,单播尽力而为、无损单播和多目的地流量的缓冲区消耗顺序相同:
-
专用缓冲区
-
共享缓冲区
在所有端口上的所有情况下,交换机将首先使用专用缓冲池,只有在端口或队列的专用缓冲池耗尽后才使用共享缓冲池。这将保留最大的动态共享缓冲区空间来吸收突发流量。
默认缓冲池值
您可以使用操作命令查看默认或配置的入口和出口缓冲池值(以 KB 为单位 show class-of-service shared-buffer )。您可以使用操作命令查看 show configuration class-of-service shared-buffer 配置的共享缓冲池值(以百分比为单位)。
本节提供默认的总缓冲区、共享缓冲区和专用缓冲区值。
缓冲池总大小
总缓冲池是具有单独入口和出口帐户的公共内存,因此从入口和出口角度都可用完整的缓冲池。总缓冲池由专用缓冲区空间和共享缓冲区空间组成。总缓冲池的大小不可由用户配置,但分配给专用和共享缓冲池的缓冲区空间可由用户配置。
共享缓冲池默认值
某些交换机的共享缓冲池比其他交换机更大。但是,共享缓冲区空间分配给单个入口和出口缓冲池的百分比是相同的,即使绝对值不同。例如,默认入口无损缓冲区占所有交换机上总共享入口缓冲区空间的 9%,即使入口无损缓冲区的默认绝对值因交换机而异。
Shared Ingress Buffer Default Values
表 5 显示了所有交换机的默认入口共享缓冲区分配值(百分比)。如果更改默认共享缓冲区分配,则将更改配置为百分比。
| 共享入口缓冲区总数 |
无损缓冲区 |
无损裕量缓冲区 |
有损缓冲区 |
|---|---|---|---|
| 100% |
9% |
45% |
46% |
Shared Egress Buffer Default Values
表 6 以百分比形式显示了所有交换机的默认出口共享缓冲区分配值。
| 共享出口缓冲区总数 |
无损缓冲区 |
有损缓冲区 |
组播缓冲区 |
|---|---|---|---|
| 100% |
50% |
31% |
19% |
专用缓冲池默认值
系统会保留入口和出口专用缓冲池,这些缓冲池在交换机端口之间平均分配。默认情况下,系统会将 100% 的可用未预留缓冲区空间分配给共享缓冲池。如果减少分配给共享缓冲池的可用未保留缓冲区空间的百分比,那么剩余的未保留缓冲区空间将添加到专用缓冲池分配中。您可以通过减少(或增加)分配给共享缓冲池的缓冲区空间百分比来配置专用缓冲池空间量。您不直接配置专用缓冲池分配。
表 7 显示了 QFX5210、QFX5200、QFX5110、QFX5100、EX4600 交换机的默认入口和出口专用缓冲池值(以 KB 为单位)。
| 专用缓冲区类型 |
QFX5210 |
QFX5200-48Y |
QFX5110、QFX5200-32C |
QFX5100、EX4600 |
|---|---|---|---|---|
| 入口 |
14040 |
3373.50 |
4860.38 |
2912.81 |
| 出口 |
15184 |
3412.50 |
5408 |
3744 |
针对不同网络流量场景的共享缓冲区配置建议
配置共享缓冲池的方式取决于网络上的流量组合。本节针对五种基本网络流量方案提供共享缓冲区配置建议:
-
均衡的流量 — 网络承载单播、尽力而为、无损和组播流量的均衡组合。(这是默认配置。)
-
尽力而为单播流量 — 网络主要承载单播尽力而为流量。
-
启用了以太网暂停的尽力而为流量 (IEEE 802.3X) — 网络主要传输在链路上启用了以太网暂停的尽力而为流量。
-
尽力而为组播流量 — 网络主要承载组播尽力流量。
-
无损流量 — 网络主要传输无损流量(启用了 PFC 的流量)。
无损流量定义为您启用 PFC 以确保无损传输的流量。无损流量不是指启用以太网暂停的链路上的尽力而为流量。从针对每个网络流量方案的建议配置文件开始,并在必要时根据网络流量条件进行调整。
更改缓冲区配置是一个破坏性事件。 所有 端口上的流量将停止,直到缓冲区重新编程完成。这包括将默认配置更改为建议的配置之一。
由于缓冲区分配是以百分比为单位配置的,因此针对每种网络流量场景的建议分配对所有 QFX 系列交换机和 EX4600 交换机都有效。根据网络流量状况使用以下建议的共享缓冲区配置之一。从推荐的配置开始,然后对缓冲区分配进行小幅调整,以在必要时微调缓冲 区,如优化缓冲区配置中所述。
均衡的流量(默认配置)
默认共享缓冲区配置已针对承载尽力而为单播、无损和多目的地(组播、广播和目标查找失败)流量均衡组合的网络进行了优化。默认服务等级 (CoS) 配置也针对承载均衡流量组合的网络进行了优化。
对于承载均衡流量组合的网络,建议使用默认共享缓冲区配置,特别是在使用默认 CoS 设置的情况下。 表 8 显示了默认入口共享缓冲区分配:
| 共享入口缓冲区总数 |
无损缓冲区 |
无损裕量缓冲区 |
有损缓冲区 |
|---|---|---|---|
| 100% |
9% |
45% |
46% |
表 9 显示了默认出口共享缓冲区分配:
| 共享出口缓冲区总数 |
无损缓冲区 |
有损缓冲区 |
组播缓冲区 |
|---|---|---|---|
| 100% |
50% |
31% |
19% |
尽力而为的单播流量
如果您的网络主要承载尽力而为(有损)单播流量,则默认共享缓冲区配置会分配过多的缓冲区空间来支持无损传输。我们建议您使用以下入口共享缓冲区设置(参见 表 10)和出口共享缓冲区设置(参见 表 11),而不是浪费这些缓冲区:
| 共享入口缓冲区总数 |
无损缓冲区 |
无损裕量缓冲区 |
有损缓冲区 |
|---|---|---|---|
| 100% |
5% |
0% |
95% |
| 共享出口缓冲区总数 |
无损缓冲区 |
有损缓冲区 |
组播缓冲区 |
|---|---|---|---|
| 100% |
5% |
75% |
20% |
有关如何配置表 10 和 表 11 中所示建议缓冲区设置的示例,请参阅示例:为具有主要尽力而为的单播流量的网络配置共享缓冲池。
以太网暂停流量
如果您的网络主要承载尽力而为(有损)流量, 并在 链路上启用以太网 PAUSE,则默认共享缓冲区配置会为共享入口缓冲区分配过多的缓冲区空间(以太网 PAUSE 流量使用专用缓冲区而非共享缓冲区),而没有足够的空间用于无损余量缓冲区。我们建议使用以下入口共享缓冲区设置(请参阅 表 12)和出口共享缓冲区设置(请参阅 表 13):
| 共享入口缓冲区总数 |
无损缓冲区 |
无损裕量缓冲区 |
有损缓冲区 |
|---|---|---|---|
| 70% |
5% |
80% |
15% |
| 共享出口缓冲区总数 |
无损缓冲区 |
有损缓冲区 |
组播缓冲区 |
|---|---|---|---|
| 100% |
5% |
75% |
20% |
有关如何配置表 10 和 表 11 中所示建议的缓冲区设置的示例,请参阅示例:对于启用了以太网 PAUSE 的链路上流量大多为尽力的网络的共享缓冲池的建议配置。
尽力而为组播(多目的地)流量
如果您的网络主要承载尽力而为(有损)组播流量,则默认共享缓冲区配置会分配过多的缓冲区空间来支持无损传输。我们建议您使用以下入口共享缓冲区设置(参见 表 14)和出口共享缓冲区设置(参见 表 15),而不是浪费这些缓冲区:
| 共享入口缓冲区总数 |
无损缓冲区 |
无损裕量缓冲区 |
有损缓冲区 |
|---|---|---|---|
| 100% |
5% |
0% |
95% |
| 共享出口缓冲区总数 |
无损缓冲区 |
有损缓冲区 |
组播缓冲区 |
|---|---|---|---|
| 100% |
5% |
20% |
75% |
有关如何配置表 14 和 表 15 中所示的建议缓冲区设置的示例,请参阅示例:为以组播流量为主的网络配置共享缓冲池。
无损流量
如果您的网络主要承载无损流量,则默认共享缓冲区配置会分配过多的缓冲区空间来支持尽力而为的流量。我们建议您使用以下入口共享缓冲区设置(参见 表 16)和出口共享缓冲区设置(参见 表 17),而不是浪费这些缓冲区:
| 共享入口缓冲区总数 |
无损缓冲区 |
无损裕量缓冲区 |
有损缓冲区 |
|---|---|---|---|
| 100% |
15% |
80% |
5% |
| 共享出口缓冲区总数 |
无损缓冲区 |
有损缓冲区 |
组播缓冲区 |
|---|---|---|---|
| 100% |
90% |
5% |
5% |
有关如何配置表 16 和 表 17 中所示的建议缓冲区设置的示例,请参阅示例:为大多数无损流量的网络配置共享缓冲池。
优化缓冲区配置
从默认配置或建议的缓冲区配置开始,您可以进一步优化缓冲区分配,以最好地支持网络上的流量混合。逐渐调整设置以微调共享缓冲区分配。调整共享缓冲区配置时要小心,不仅在微调入口和出口缓冲区分区时,而且在微调入口和出口共享缓冲区总百分比时也是如此。(请记住,如果分配给共享缓冲区的可用缓冲区少于 100%,则剩余缓冲区将添加到专用缓冲区中)。调整不正确的缓冲区可能会导致入口端口拥塞等问题。
更改缓冲区配置是一个破坏性事件。 所有 端口上的流量将停止,直到缓冲区重新编程完成。
入口缓冲池与出口缓冲池的大小之间的关系会影响丢包的时间和位置。缓冲池大小包括共享缓冲区和专用缓冲区。通常,如果入口缓冲区多于出口缓冲区,交换机可能会遇到入口端口拥塞,因为入口队列会先填满,入口队列才能清空。
使用 show class-of-service shared-buffer 操作命令查看专用缓冲区和共享缓冲区以及共享缓冲区分区的大小(以千字节 (KB)为单位)。
对于尽力而为的流量(单播和多目的地),入口有损共享缓冲区和入口专用缓冲区的组合必须 小于 出口有损和组播共享缓冲区的组合加上出口专用缓冲区。这样可以确保出口尽力服务缓冲区比入口尽力服务缓冲区更深,并确保如果数据包发生丢弃,它们将在出口队列中被丢弃,从而防止入口端口拥塞。(入口处丢包会导致出口时间表无法正常工作。)
对于无损流量(启用 PFC 的流量),入口无损共享缓冲区和入口余量缓冲区的合理部分以及专用缓冲区的组合必须 小于 出口无损共享缓冲区和专用缓冲区的总和。(入口裕量缓冲区的合理部分大约占缓冲区空间的 20% 到 25%,但这取决于支持无损流量所需的缓冲区裕量。满足这些条件时,如果入口端口拥塞,入口端口拥塞会触发入口端口上的 PFC,以防止数据包丢失。如果无损入口缓冲区总数超过无损出口缓冲区总数,则可以在出口处丢弃数据包,而不是在入口处应用 PFC,以防止数据包丢失。
如果提交交换机没有足够资源的缓冲区配置,交换机可能会记录错误,而不是返回提交错误。在这种情况下,控制台上将显示一条系统日志消息。例如:
user@host# commit configuration check succeeds Message from syslogd@host at Jun 13 11:11:10 ... host dc-pfe: Not enough Ingress Lossless headroom.(Already allocated more). Dedicated : 14340 Lossy : 47100 Lossless 4239 Headroom 21195 Avail : 20781 commit complete
如果缓冲区配置已提交,但您收到一条系统日志消息,指示无法实施该配置,您可以:
-
重新配置缓冲区或重新配置其他参数(例如,PFC 配置,这会影响对无损裕量缓冲区和无损缓冲区的需求 - 暂停的优先级越多,所需的裕量缓冲区空间就越无损和无损),然后再次尝试提交操作。
-
将交换机回滚到上次成功的配置。
如果收到一条系统日志消息,指出无法实施缓冲区配置,则必须采取纠正措施。如果不修复配置或回滚到之前的成功配置,则系统行为将无法预测。
常规缓冲区配置规则和注意事项
配置缓冲区时,请记住以下规则和注意事项:
-
更改缓冲区配置是一个破坏性事件。 所有 端口上的流量将停止,直到缓冲区重新编程完成。
-
如果将入口或出口共享缓冲区百分比配置为小于 100%,则剩余百分比的缓冲区空间将添加到专用缓冲池中。
-
所有入口共享缓冲区分区的总和必须等于 100%。每个分区必须配置至少 5% 的值,但无损余量缓冲区除外,其值可以为 0%。
-
所有出口共享缓冲区分区的总和必须等于 100%。必须为每个分区配置至少 5% 的值。
-
无损和无损余量共享缓冲区为启用了 PFC 的流量提供服务,不会为受以太网暂停影响的流量提供服务。
-
交换机将首先使用专用缓冲池,只有在端口或队列的专用缓冲池耗尽后才使用共享缓冲池。
-
专用缓冲区空间太少会导致共享缓冲区空间的竞争过大。
-
专用缓冲区空间过多会导致突发吸收较差,因为可用的共享缓冲区空间较少。
-
提交新的缓冲区配置后,请务必检查系统日志消息。
-
网络的最佳缓冲区配置取决于网络上的流量类型。如果您的网络承载的某种类型的流量较少(例如,无损流量),则可以减小分配给该类型流量的缓冲区的大小(例如,您可以减小无损和无损余量缓冲区的大小)。
特定于平台的缓冲区行为
使用下表查看平台的特定于平台的行为。
| 平台 |
差异 |
|---|---|
| QFX5000 系列 |
|
| QFX10000 系列 |
|
| QFX 虚拟机箱和 EX4600/EX4650 虚拟机箱 |
|