示例:为大部分无损流量的网络推荐配置共享缓冲区池
尽管交换机保留一些缓冲区空间以确保为端口和队列分配最少的内存,但您可以配置系统如何使用其余缓冲区空间来优化特定网络流量组合的缓冲区分配。
此示例显示了为支持主要承载无损流量的网络而建议的全局共享缓冲区池配置。全局共享缓冲区池是交换机上所有端口在需要缓冲区时动态共享的内存空间。您可以将全局共享内存空间分配给不同类型的缓冲区,以更好地支持不同的网络流量组合。
更改缓冲区配置是一个颠覆性事件。所有端口上的流量 都会 停止,直到缓冲区重新编程完成。
使用默认共享缓冲区设置(适用于包含无损、尽力和组播流量混合的网络)或建议的共享缓冲区配置之一,用于网络流量组合(大多数是尽力而为单播流量,在为以太网 PAUSE 启用的链路上主要提供尽力流量,主要是组播流量,或大部分为无损流量)。默认配置或推荐配置之一可提供满足大多数网络需求的缓冲区分配。
当我们讨论无损缓冲区时,我们是指处理启用了基于优先级的流控制 (PFC) 以确保无损传输的流量的缓冲区。无损缓冲区不会用于启用以太网暂停 (IEEE 802.3x) 的链路上的尽力流量。
从建议的配置开始后,您可以微调共享缓冲区设置,但要小心谨慎,以免因缓冲区配置错误而导致流量丢失。
要求
此示例使用以下硬件和软件组件:
瞻博网络 QFX3500 交换机
QFX 系列的 Junos OS 12.3 或更高版本
概述
您可以配置分配给全局共享缓冲区的可用(用户可配置)缓冲区空间百分比。未分配给全局共享缓冲区池的任何空间将被添加到专用缓冲区池中。默认配置将 100% 的可用缓冲区空间分配给全局共享缓冲区。
您可以对入口和出口共享缓冲区池进行分区,以便为网络主要承载的流量类型分配更多缓冲区,为其他流量分配更少的缓冲区。从分配给入口共享缓冲区池的缓冲区空间中,您可以将空间分配给:
无损缓冲区 — 所有无损入口流量的共享缓冲区池百分比。无损缓冲区的最大值为 5%。
-
无损余量缓冲区 — 断定暂停时接收的数据包的共享缓冲区池百分比。如果在端口上配置了以太网 PAUSE,或者针对端口上的优先级配置了基于优先级的流控制 (PFC),则当端口向连接的对等方发送暂停消息时,端口将使用余量缓冲区来存储端口发送暂停消息的时间和在对等方暂停流量之后最后一个数据包到达之间的到达数据包。无损余量缓冲区的最大值为 0(零)。(无损空间缓冲区是唯一可以具有小于 5% 的最大值的缓冲区。)
注意:在 QFX 虚拟机箱和 EX4600/EX4650 虚拟机箱上,无损余量缓冲区的最大值为 3%。
有损缓冲区 — 所有尽力而为的入口流量(尽力单播、多兆和严格高优先级流量)的共享缓冲区池百分比。有损缓冲区的最大值为 5%。
入口无损、无损余地和有损缓冲区分区的总百分比值必须正好达到 100%。如果缓冲区总百分比超过 100% 或低于 100%,交换机将返回提交错误。必须显式配置所有入口缓冲区分区,即使无损余量缓冲区分区的值为 0(零)%。
如果提交交换机资源不足的缓冲区配置,交换机可能会记录错误,而不是返回提交错误。在这种情况下,控制台上显示系统日志消息。例如:
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
从分配给出口共享缓冲区池的缓冲区空间中,您可以分配空间以:
无损缓冲区 — 所有无损出口队列的共享缓冲区池百分比。无损缓冲区的最大值为 5%。
有损缓冲区 — 所有尽力服务出口队列(尽力单播队列和严格优先级高队列)的共享缓冲区池百分比。有损缓冲区的最大值为 5%。
组播缓冲区 — 所有多播、广播和目标查找失败)出口队列的共享缓冲区池百分比。组播缓冲区的最大值为 5%。
出口无损、有损和组播缓冲区分区的总百分比值必须完全达到 100%。如果缓冲区总百分比超过 100% 或低于 100%,交换机将返回提交错误。所有出口缓冲区分区都必须进行显式配置,并且值必须至少为 5%。
要配置共享缓冲区以支持主要承载无损流量的网络,需要将更多的缓冲区空间分配给无损缓冲区,并且应将更少的缓冲区空间分配给有损缓冲区。此示例将说明如何配置全局共享缓冲区池分配,建议该分配用于支持主要承载无损流量的网络。
拓扑
表 1 显示了此示例的配置组件。
组件 |
设置 |
|---|---|
硬件 |
QFX3500 交换机 |
入口共享缓冲区 |
分配给入口共享缓冲区的可用入口缓冲区空间百分比:100% 分配给无损流量(无损缓冲区分区)的入口缓冲区空间百分比:15% 分配给无损余量流量的入口缓冲区空间百分比(无损空间缓冲区分区):80% 分配给尽力流量(有损缓冲区分区)的入口缓冲区空间百分比:5% |
出口共享缓冲区 |
分配给出口共享缓冲区的可用出口缓冲区空间百分比:100% 分配给无损队列(无损缓冲区分区)的出口缓冲区空间百分比:90% 分配给尽力队列的出口缓冲区空间百分比(有损缓冲区分区):5% 分配给组播流量的出口缓冲区空间百分比(组播缓冲区分区):5% |
配置
CLI 快速配置
要为主要承载无损流量的网络快速配置建议的共享缓冲区设置,请复制以下命令,将其粘贴到文本文件中,删除换行符,更改变量和详细信息以匹配您的网络配置,然后将命令复制并粘贴到层级的 [edit] CLI 中:
[edit class-of-service shared-buffer] set ingress percent 100 set ingress buffer-partition lossless percent 15 set ingress buffer-partition lossless-headroom percent 80 set ingress buffer-partition lossy percent 5 set egress percent 100 set egress buffer-partition lossless percent 90 set egress buffer-partition lossy percent 5 set egress buffer-partition multicast percent 5
为主要包含无损流量的网络配置全局共享缓冲区池
逐步过程
要为主要承载无损流量的网络配置全局入口和出口共享缓冲区分配和分区:
配置用于入口全局共享缓冲区池的可用(非保留)缓冲区百分比:
[edit class-of-service shared-buffer] user@switch# set ingress percent 100
配置全局入口缓冲区分区,以实现无损、无损余量和有损流量:
[edit class-of-service shared-buffer] user@switch# set ingress buffer-partition lossless percent 15 user@switch# set ingress buffer-partition lossless-headroom percent 80 user@switch# set ingress buffer-partition lossy percent 5
配置用于出口全局共享缓冲区池的可用(非保留)缓冲区百分比:
[edit class-of-service shared-buffer] user@switch# set egress percent 100
为无损、有损和组播队列配置全局出口缓冲区分区:
[edit class-of-service shared-buffer] user@switch# set egress buffer-partition lossless percent 90 user@switch# set egress buffer-partition lossy percent 5 user@switch# set egress buffer-partition multicast percent 5
结果
显示配置结果:
rroot@dcbg-tp-pa-02> show configuration class-of-service shared-buffer
ingress {
percent 100;
buffer-partition lossless {
percent 15;
}
buffer-partition lossy {
percent 5;
}
buffer-partition lossless-headroom {
percent 80;
}
}
egress {
percent 100;
buffer-partition lossless {
percent 90;
}
buffer-partition lossy {
percent 5;
}
buffer-partition multicast {
percent 5;
}
}
验证
验证是否已正确创建共享缓冲区配置。
验证共享缓冲区配置
目的
验证入口和出口全局共享缓冲区池是否已在共享缓冲区类型之间正确配置和分区。
行动
使用操作模式命令 show class-of-service shared-buffer列出全局共享缓冲区配置:
user@switch> show class-of-service shared-buffer
root@dcbg-tp-pa-02> show class-of-service shared-buffer
Ingress:
Total Buffer : 9360.00 KB
Dedicated Buffer : 2158.00 KB
Shared Buffer : 7202.00 KB
Lossless : 1080.30 KB
Lossless Headroom : 5761.60 KB
Lossy : 360.10 KB
Lossless Headroom Utilization:
Node Device Total Used Free
0 5761.60 KB 0.00 KB 5761.60 KB
Egress:
Total Buffer : 9360.00 KB
Dedicated Buffer : 2704.00 KB
Shared Buffer : 6656.00 KB
Lossless : 5990.40 KB
Multicast : 332.80 KB
Lossy : 332.80 KB
意义
show class-of-service shared-buffer操作命令显示所有入口和出口全局共享缓冲区设置,包括缓冲区分区。
对于入口共享缓冲区,命令输出显示:
交换机缓冲区池总数为 9360 KB (9 MB)。
专用缓冲区池为 2158 KB。这是当您将入口共享缓冲区池配置为可用(用户可配置)缓冲区空间的 100% 时,全局入口专用缓冲区池的大小。这是保留的入口专用入口缓冲区池的最小大小(用户不可配置)。如果将共享缓冲区配置为不到可用缓冲区池的 100%,剩余缓冲区空间将添加到专用缓冲区池中。
将入口共享缓冲区池配置为 100% 的可用缓冲区时,入口共享缓冲区池的总大小为 7202 KB。
入口共享缓冲区池被分区以分配:
1080 KB 到无损流量
5761.60 KB 至无损余量流量
360.10 KB 到有损单播流量
无损空间利用率字段显示为暂停的流量预留了多少缓冲区空间。在 5761.60 KB 的总可用无损余量缓冲区空间中,目前没有使用缓冲区空间,因此 5761.60 KB 的缓冲区空间全部可用。
对于出口共享缓冲区,命令输出显示:
交换机缓冲区池总数为 9360 KB (9 MB)。
专用缓冲区池为 2704 KB。这是当您将出口共享缓冲区池配置为可用(用户可配置)缓冲区空间的 100% 时,全局出口专用缓冲区池的大小。这是保留的出口专用缓冲区池的最小大小(用户不可配置)。如果将共享缓冲区配置为不到可用缓冲区池的 100%,剩余缓冲区空间将添加到专用缓冲区池中。
将出口共享缓冲区池配置为 100% 的可用缓冲区时,出口共享缓冲区池的总大小为 6656 KB。这比入口共享缓冲区池小,因为交换机保留的出口专用缓冲区空间比入口专用缓冲区空间更多。(更多的专用缓冲区空间意味着更少的共享缓冲区空间,更多的共享缓冲区空间意味着更少的专用缓冲区空间。)
出口共享缓冲区池被分区以分配:
5990.40 KB 到无损流量
332.80 KB 到组播流量
332.80 KB 到有损单播流量
输出值对 QFX3500 和 QFX3600 交换机有效。QFX5100 和 EX4600 交换机的缓冲区较大(12MB 而非 9MB),因此 QFX5100 和 EX4600 交换机的总缓冲区大小和每个缓冲区分区的大小都会更大。