《QoS实战:基于类的加权公平队列(CBWFQ)与LLQ》

内容分享1周前发布
0 2 0

一、 引入:从WFQ到CBWFQ的技术演进

“传统队列技术的局限性:

  • WFQ:基于流的公平性,但无法保证关键业务带宽
  • PQ:绝对优先级,但可能导致低优先级流量饿死
  • CQ:固定比例分配,但缺乏灵活性

CBWFQ结合了分类的准确性和WFQ的公平性,成为现代QoS的核心技术。”

二、 CBWFQ架构深度解析

1. CBWFQ核心架构

《QoS实战:基于类的加权公平队列(CBWFQ)与LLQ》

2. CBWFQ关键技术特性

  • 基于类的分类:灵活定义业务类别
  • 带宽保证:每个类别有最小带宽承诺
  • 公平调度:默认类别使用WFQ公平调度
  • 动态分配:空闲带宽按权重重新分配

三、 CBWFQ配置实战

1. 基础CBWFQ配置

# 步骤1:定义类映射(Class Map)
class-map match-all VOICE
 match dscp ef    # 匹配EF(加速转发)流量
 match protocol rtp audio    # 匹配RTP音频流量

class-map match-all VIDEO
 match dscp af41    # 匹配AF41(保证转发)流量
 match protocol rtp video    # 匹配RTP视频流量

class-map match-all BUSINESS
 match dscp af21    # 匹配AF21流量
 match access-group name BUSINESS-APPS    # 匹配业务应用

# 步骤2:定义策略映射(Policy Map)
policy-map WAN-QOS
 class VOICE
  bandwidth percent 20    # 保证20%带宽
  queue-limit 64 packets    # 队列深度64包
 
 class VIDEO
  bandwidth percent 30    # 保证30%带宽
  queue-limit 128 packets    # 队列深度128包
  random-detect dscp-based    # 基于DSCP的WRED
 
 class BUSINESS
  bandwidth percent 25    # 保证25%带宽
  queue-limit 256 packets    # 队列深度256包
 
 class class-default
  fair-queue    # 默认类别使用WFQ
  bandwidth remaining percent 25    # 剩余25%带宽

# 步骤3:应用策略到接口
interface GigabitEthernet0/0/1
 service-policy output WAN-QOS

2. 高级CBWFQ特性配置

# 带宽分配方式详解
policy-map ADVANCED-CBWFQ
 class CRITICAL
  bandwidth 10000    # 绝对带宽值10Mbps
  queue-limit 100    # 队列深度100包

 class IMPORTANT
  bandwidth percent 30    # 相对百分比30%
  queue-limit 200

 class NORMAL
  bandwidth remaining ratio 2    # 剩余带宽权重2

 class class-default
  bandwidth remaining ratio 1    # 剩余带宽权重1
  fair-queue

3. CBWFQ监控与验证

# 查看CBWFQ策略状态
show policy-map interface GigabitEthernet0/0/1

# 输出示例:
Class-map: VOICE (match-all)
  Packets: 1000, Bytes: 1024000
  Offered rate: 2000 bps
  Queueing: Output Queue: 1
  Bandwidth: 20% (20000 kbps)
  Queue-limit: 64 packets
  (queue depth/total drops/no-buffer drops) 10/0/0

Class-map: class-default (match-all)
  Packets: 5000, Bytes: 5120000
  Offered rate: 8000 bps
  Queueing: Output Queue: 4
  Bandwidth remaining: 25% (25% of available)
  Fair-queue: per-flow queue limit 64

四、 LLQ(低延迟队列)技术深度解析

1. LLQ架构原理

《QoS实战:基于类的加权公平队列(CBWFQ)与LLQ》

2. LLQ关键技术优势

  • 绝对优先:LLQ流量总是优先发送
  • 带宽限制:防止LLQ独占带宽
  • 结合CBWFQ:非实时流量公平调度
  • 低延迟:确保实时业务质量

五、 LLQ配置实战

1. 基础LLQ配置

# 定义低延迟业务类别
class-map match-any REAL-TIME
 match dscp ef    # 语音流量
 match dscp cs5    # 信令流量
 match protocol sip    # SIP协议

# 配置LLQ策略
policy-map LLQ-QOS
 class REAL-TIME
  priority percent 15    # 严格优先级,限制15%带宽
  queue-limit 32 packets    # 小队列减少延迟

 class VIDEO
  bandwidth percent 30    # 视频保证带宽
  random-detect dscp-based

 class BUSINESS
  bandwidth percent 35    # 业务保证带宽

 class class-default
  fair-queue
  bandwidth remaining percent 20    # 剩余带宽分配

# 应用LLQ策略
interface Serial0/0/0
 bandwidth 2000    # 链路带宽2Mbps
 service-policy output LLQ-QOS

2. 多级LLQ配置

# 不同实时等级的业务
policy-map MULTI-LEVEL-LLQ
 class VOICE-PRIORITY
  priority percent 10    # 最高优先级语音
  queue-limit 16 packets

 class VIDEO-PRIORITY
  priority percent 20    # 视频会议优先级
  queue-limit 64 packets

 class DATA-PRIORITY
  bandwidth percent 40    # 关键数据保证带宽

 class class-default
  bandwidth remaining percent 30
  fair-queue

3. LLQ带宽限制策略

# 防止LLQ过度占用带宽
policy-map LLQ-WITH-POLICING
 class REAL-TIME
  priority 500    # 绝对带宽500kbps
  police cir 500000    # 限速500kbps
   conform-action transmit
   exceed-action drop    # 超速丢弃

 class OTHER-TRAFFIC
  bandwidth percent 80
  random-detect

六、 CBWFQ与LLQ组合方案

1. 企业广域网QoS设计

《QoS实战:基于类的加权公平队列(CBWFQ)与LLQ》

2. 综合配置示例

# 企业广域网QoS策略
class-map match-any VOICE
 match dscp ef
 match protocol rtp audio
 match protocol sip

class-map match-any VIDEO-CONF
 match dscp af41
 match protocol rtp video
 match protocol h323

class-map match-any BUSINESS-CRITICAL
 match dscp af21
 match access-group name CRITICAL-APPS

class-map match-any BUSINESS-NORMAL
 match dscp af11
 match access-group name NORMAL-APPS

policy-map ENTERPRISE-WAN-QOS
 class VOICE
  priority percent 15    # LLQ:语音绝对优先
  queue-limit 48 packets

 class VIDEO-CONF
  bandwidth percent 25    # CBWFQ:视频会议保证带宽
  random-detect dscp-based
  queue-limit 128 packets

 class BUSINESS-CRITICAL
  bandwidth percent 30    # CBWFQ:关键业务保证带宽
  random-detect
  queue-limit 256 packets

 class BUSINESS-NORMAL
  bandwidth percent 20    # CBWFQ:普通业务保证带宽
  queue-limit 512 packets

 class class-default
  fair-queue    # WFQ公平调度
  bandwidth remaining percent 10    # 剩余带宽

interface GigabitEthernet0/0/1
 bandwidth 100000    # 100M链路
 service-policy output ENTERPRISE-WAN-QOS

七、 高级特性与优化

1. 队列深度优化

# 根据业务特性调整队列深度
policy-map OPTIMIZED-QUEUES
 class VOICE
  priority percent 10
  queue-limit 32    # 语音:小队列低延迟

 class VIDEO
  bandwidth percent 25
  queue-limit 256    # 视频:中等队列缓冲

 class BULK-DATA
  bandwidth percent 35
  queue-limit 1024    # 大数据:大队列高吞吐

 class class-default
  fair-queue
  queue-limit 512

2. WRED拥塞避免

# 针对不同业务配置WRED
policy-map WRED-OPTIMIZATION
 class VIDEO
  bandwidth percent 30
  random-detect dscp-based    # 基于DSCP的WRED
  random-detect dscp af41 50 100 10    # AF41的WRED参数

 class BUSINESS
  bandwidth percent 40
  random-detect    # 默认WRED
  random-detect precedence 0 70 100 15    # 调整阈值

 class class-default
  fair-queue
  random-detect    # 默认队列也启用WRED

3. 分层QoS策略

# 父策略:整体带宽分配
policy-map PARENT-POLICY
 class class-default
  shape average 100000000    # 总带宽限制100M
  service-policy CHILD-POLICY    # 嵌套子策略

# 子策略:详细队列调度
policy-map CHILD-POLICY
 class VOICE
  priority percent 15
 class VIDEO
  bandwidth percent 25
 class class-default
  bandwidth remaining percent 60

八、 企业级部署案例

案例1:金融企业交易网络

# 金融交易QoS策略
class-map match-all TRADING
 match dscp cs6    # 交易数据最高优先级
 match access-group name TRADING-SERVERS

class-map match-all MARKET-DATA
 match dscp cs5    # 行情数据高优先级
 match protocol tcp port 18000    # 行情端口

policy-map FINANCIAL-QOS
 class TRADING
  priority percent 20    # 交易数据绝对优先
  queue-limit 32 packets

 class MARKET-DATA
  priority percent 15    # 行情数据优先级
  queue-limit 64 packets

 class VOICE
  bandwidth percent 10    # 语音通信保证带宽
  queue-limit 48 packets

 class class-default
  bandwidth remaining percent 55
  fair-queue

interface TenGigabitEthernet1/0/1
 bandwidth 10000000    # 10G链路
 service-policy output FINANCIAL-QOS

案例2:视频会议网络优化

# 视频会议专用QoS
class-map match-any VIDEO-HD
 match dscp af41    # 高清视频
 match protocol rtp payload-type 96    # H.264视频

class-map match-any VIDEO-SD
 match dscp af31    # 标清视频
 match protocol rtp payload-type 34    # H.263视频

class-map match-any AUDIO
 match dscp ef    # 音频数据
 match protocol rtp payload-type 8    # PCM音频

policy-map VIDEO-CONF-QOS
 class AUDIO
  priority percent 10    # 音频最高优先级
  queue-limit 24 packets

 class VIDEO-HD
  priority percent 40    # 高清视频优先级
  queue-limit 256 packets

 class VIDEO-SD
  bandwidth percent 30    # 标清视频保证带宽
  queue-limit 128 packets

 class class-default
  bandwidth remaining percent 20
  fair-queue

九、 故障排查与优化

1. QoS问题排查框架

# 1. 检查策略应用状态
show policy-map interface GigabitEthernet0/0/1

# 2. 检查分类匹配情况
show class-map

# 3. 检查队列统计信息
show queueing interface GigabitEthernet0/0/1

# 4. 实时监控丢包情况
show policy-map interface GigabitEthernet0/0/1 output class VOICE

# 5. 深度调试(谨慎使用)
debug qos events
debug policy-map class VOICE

2. 常见问题解决方案

问题1:LLQ流量占用过多带宽

# 解决方案:严格限制LLQ带宽
class REAL-TIME
 priority 10000    # 限制为10Mbps绝对带宽
 police cir 10000000    # 限速策略
  conform-action transmit
  exceed-action drop

问题2:CBWFQ带宽分配不均

# 解决方案:调整带宽分配策略
class BUSINESS-CRITICAL
 bandwidth percent 40    # 增加关键业务带宽

class BUSINESS-NORMAL
 bandwidth percent 20    # 减少普通业务带宽

class class-default
 bandwidth remaining percent 40    # 重新分配剩余带宽

问题3:默认队列流量饿死

# 解决方案:保证默认队列最小带宽
class class-default
 bandwidth percent 10    # 保证10%最小带宽
 fair-queue
 bandwidth remaining percent 90    # 参与剩余带宽分配

十、 性能监控与优化

1. 关键性能指标监控

# 实时监控命令
show policy-map interface GigabitEthernet0/0/1 | include Packets|Bytes|drops

# 监控输出示例:
Class-map: VOICE (match-all)
  Packets: 50000, Bytes: 51200000, Drops: 5
Class-map: VIDEO (match-all)  
  Packets: 200000, Bytes: 204800000, Drops: 25
Class-map: class-default (match-all)
  Packets: 1000000, Bytes: 1024000000, Drops: 150

2. 性能优化提议

# 根据监控结果调整参数
policy-map OPTIMIZED
 class VOICE
  priority percent 20    # 增加语音带宽
  queue-limit 64        # 增加队列深度

 class VIDEO
  bandwidth percent 35    # 调整视频带宽
  random-detect dscp af41 40 80 5    # 优化WRED参数

十一、 云环境与SDN演进

1. 云原生QoS架构

2. Kubernetes QoS示例

apiVersion: v1
kind: Pod
metadata:
  name: qos-demo
spec:
  containers:
  - name: nginx
    image: nginx
    resources:
      requests:
        memory: "64Mi"
        cpu: "250m"
      limits:
        memory: "128Mi" 
        cpu: "500m"

十二、 总结

CBWFQ与LLQ核心技术总结:

  1. CBWFQ:基于类的带宽保证,适合非实时业务
  2. LLQ:严格优先级队列,保证实时业务低延迟
  3. 组合使用:LLQ处理实时流量,CBWFQ处理非实时流量
  4. 带宽管理:通过百分比、绝对值、剩余比例灵活分配

部署最佳实践:

  • 语音视频:使用LLQ保证低延迟
  • 关键业务:使用CBWFQ保证带宽
  • 普通流量:使用WFQ公平调度
  • 持续优化:根据监控数据调整参数

互动提问:

  1. 你在实际项目中如何设计CBWFQ/LLQ策略?
  2. 遇到过哪些QoS配置的挑战?
  3. 对于云环境下的QoS有什么经验?
© 版权声明

相关文章

2 条评论

您必须登录才能参与评论!
立即登录
  • 头像
    天亮就杀你 投稿者

    收藏了,感谢分享

    无记录