03-数据缓冲区配置
本章节下载: 03-数据缓冲区配置 (187.02 KB)
数据缓冲区用来临时存储报文,以免报文丢失。如图1-1所示,设备上的数据缓冲区分为接收缓冲区和发送缓冲区:
· 当网络拥塞时,端口不能立即发送数据,为防止数据丢失,会将数据暂时存储到设备的发送数据缓冲区;
· 当设备的CPU繁忙时,端口不能立即将收到的报文交给CPU处理,会将数据暂时存储到设备的接收数据缓冲区。
发送数据缓冲区和接收数据缓冲区在缓存数据时,都会同时用到两类资源:
· cell资源:用来存储数据包的内容,端口会根据报文的实际大小占用相应大小的cell资源。比如一个cell资源是208字节,当发送的报文是128字节时,端口会给它分配一个cell资源,当发送的报文是300字节时,端口会给它分配两个cell资源。
· packet资源:用来存储报文的指针,指针指明报文在cell资源中的存放位置。设备每发送/接收一个数据包,无论该数据包的长度是多少,均占用1个packet资源。
当端口接收/发送报文时,既使用相当于报文长度的cell资源,同时也使用相当于报文数量的packet资源。
cell资源和packet资源又分别分为共享区域和固定区域。
· 固定区域是按队列划分的,每个队列又按端口均分,如图1-2所示。如果网络拥塞,端口收到报文后,会根据一定的策略将报文分发到相应的队列。如果该端口的该队列缓冲区满,则放到共享区域中的相应队列;如果共享区域中该队列满,则将报文丢弃。在固定缓冲区中,系统会根据用户的配置给队列预留指定大小的空间,即便该队列没有报文存储需求,其他队列也不能抢占。给队列预留的空间又是均分给每个端口的,即使某端口的某队列没有报文存储需求,其他端口也不能抢占。
· 共享缓冲区只按队列划分,不再按端口均分,如图1-2所示。系统会根据用户配置以及实际需要收发报文的数量决定每个队列实际可占用的缓冲区的大小。如果某个队列没有报文存储需求,则其他队列会抢占该队列的配额。对于某个队列的缓冲区,所有端口收来的报文,先到先得,如果资源耗尽,则后到达的报文将被丢弃。
用户可以使用以下两种方式配置数据缓冲区:
· 通过Burst功能来自动分配缓冲区
· 手工配置数据缓冲区
需要注意的是,以上两种数据缓冲区的配置方式不能同时使用,如果已经使用某一种方式进行了配置,则必须先取消该方式的配置之后,才能使用另外一种方式进行配置。否则,配置失败。
配置了Burst功能后,设备将自动分配cell资源和packet资源。
在下列情况下,Burst功能可以提供更好的报文缓存功能和流量转发性能:
· 广播或者组播报文流量密集,瞬间突发大流量的网络环境中;
· 报文从高速链路进入设备,由低速链路转发出去;或者报文从相同速率的多个端口同时进入设备,由一个相同速率的端口转发出去。
表1-1 通过Burst功能来自动分配缓冲区
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启Burst功能 |
burst-mode enable |
缺省情况下,Burst功能处于关闭状态 |
数据缓冲区的配置比较复杂,而且对设备的转发功能有重要的影响,建议用户不要轻易修改数据缓冲区的缺省参数。在需要较大的缓存空间时,建议使用Burst功能来自动分配缓冲区。
设备上整个数据缓冲区的大小是固定的,用户配置共享区域的大小后,其余部分将自动成为固定区域。
表1-2 配置数据缓冲区中共享区域的大小
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置数据缓冲区中共享区域的大小 |
buffer egress [ slot slot-number ] { cell | packet } total-shared ratio ratio |
缺省情况下: · cell缓冲区中共享区域所占比例为0% · packet缓冲区中共享区域所占比例为0% |
缺省情况下,所有端口或队列均分共享区域,但用户也可以调整指定队列最多可使用的共享区域的大小,其它未配置的队列最多可使用的共享区域的大小仍遵循缺省值。最终,各端口或队列最多可使用的共享区域的大小将由芯片根据buffer shared配置,以及实际需要收发报文的数量决定。
表1-3 配置端口或指定队列最多可使用的共享区域的大小
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置端口或指定队列最多可使用的共享区域的大小 |
buffer egress [ slot slot-number ] { cell | packet } [ queue queue-id ] shared ratio ratio |
缺省情况下: · 每个端口最多可使用的packet资源中共享区域的比例为20% · 每个端口最多可使用的cell资源中共享区域的比例为20% |
缺省情况下,所有队列均分固定区域,但用户也可以调整指定队列最多可使用的固定区域的大小,其它未配置的队列则均分剩余的共享区域。
配置该命令后,系统就会给队列预留指定大小的空间,即便该队列没有报文存储需求,其他队列也不能抢占。所有队列所配置的固定区域大小之和,不应超过可配置的总固定区域大小,否则配置失败。
表1-4 配置指定队列最多可使用的固定区域的大小
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置指定队列最多可使用的固定区域的大小 |
buffer egress [ slot slot-number ] { cell | packet } queue queue-id guaranteed ratio ratio |
每个队列最多可使用的cell资源中固定区域比例为12% 每个队列最多可使用的packet资源中固定区域的比例为12% |
用户在完成对数据缓冲区的手工配置后,必须使用下面的步骤将所作的修改进行应用,之前的配置才能生效。配置被应用后就不能被修改,需要先取消应用,再修改、应用,新的配置才能生效。
表1-5 应用数据缓冲区的配置
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
应用数据缓冲区的配置 |
buffer apply |
- |
在完成上述配置后,在任意视图下执行display命令可以查看数据缓冲区的配置效果。
操作 |
命令 |
显示数据缓冲区的大小 |
display buffer [ slot slot-number ] [ queue [ queue-id ] ] |
显示数据缓冲区的使用率 |
display buffer usage [ slot slot-number ] |
用户网络描述如下:
Server通过1000Mbps以太网接口接入Switch,Server会不定时发送大流量的广播或者组播报文给Host。
Host通过100Mbps以太网卡接入Switch。
通过Switch对Server发出的大流量报文进行处理,保证报文可以到达Host。
图1-3 配置Burst功能组网图
# 进入系统视图。
<Switch> system-view
# 配置Burst功能。
[Switch] burst-mode enable
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!