DPDK QoS之分层调度器
原创翻译,转载请注明出处。 分层调度器的时机主要体现在TX侧,正好在传递报文之前。它的主要目的是在每个网络节点按照服务级别协议来对不同的流量分类和对不同的用户的报文区分优先级并排序。 一、概述 分层调度器跟以前使用网络处理器实现的每条流或一组流的报文队列和调度的流量管理器很相似。它看起来像在传输之前的一个临时存储了很大数量报文的缓冲区(入队操作)。当网卡TX请求更多报文去发送的时候,这些报文递交给网卡TX的预定义的SLA的报文选择逻辑模块之后会删除。(出队操作)。 分层调度器对大数量的报文队列做了优化。当只需要小数量的队列时,会使用消息传递队列来替代。更多详情参考"Worst Case Scenarios for Performance"。 二、分层调度 如下图: 分层的第一级是 Ethernet TX 1/10/40端口,之后的分级是子端口,流水线,流分类和队列。 有代表性的是,每一个子端口表示一个预定义好的用户组,而每一个流水线表示一个个人用户。每一个流分类表示不同的流量类型,流量类型包含了具体的丢包率,时延,抖动等需求,比如语音,视频或数据传输。每一个队列从一到多个相同用户相同类型的连接里接待(原文是动词:host)报文。 下面的表格对每个分层做了功能描述: # 级别 兄弟 功能描述 1 Port 0 1、以太端口1/10/40 GbE输出; 2、多个端口具有相同的优先级