OpenBSD:PF 队列突破 4 Gbps 瓶颈

发布: (2026年3月19日 GMT+8 21:43)
3 分钟阅读

Source: Hacker News

介绍

OpenBSD 的 PF 包过滤器长期以来在 pf.conf(5)queue 规则中支持 HFSC 流量整形。然而,HFSC 服务曲线结构(struct hfsc_sc)内部的 32 位限制将带宽值上限限制在约 4.29 Gbps——即 u_int 能表示的最大值。

随着 10 G、25 G、100 G 网络接口已变得司空见惯,且内核在 SMP 与高速驱动方面的工作持续进行,这一限制已成为实际障碍。在队列上配置 bandwidth 10G 时会悄悄回绕,导致调度行为错误且不可预测。

补丁

一个新的 patch 将内核 HFSC 调度器中的带宽字段从 32 位扩展为 64 位整数,彻底消除了这一瓶颈。同样的改动还修复了 pftop(1) 中的显示错误——之前在 4 Gbps 以上的带宽值会显示不正确。

关键更改

  • HFSC 调度器中的带宽字段现为 64 位。
  • pftop 正确显示高速带宽值。
  • 对使用低于 4 Gbps 值的现有配置没有影响。

实际影响

PF 队列的带宽配置现在能够正确支持现代高速接口。熟悉的语法保持不变:

queue rootq on em0 bandwidth 10G
queue defq parent rootq bandwidth 8G default

支持的数值最高可达 999 G,足以满足当今及未来的接口需求。使用低于 4 G 的现有配置仍可正常工作,无需修改。

使用示例

# 在接口 em0 上定义一个带宽为 10 Gbps 的根队列
queue rootq on em0 bandwidth 10G

# 定义一个带宽为 8 Gbps 的默认子队列
queue defq parent rootq bandwidth 8G default

参考资料

0 浏览
Back to Blog

相关文章

阅读更多 »

我发现字体设计的那一天

五十年前的本月,1976年3月,我20岁时,对字体设计的兴趣由此萌生。!https://www.marksimonson.com/_astro/Mark_1976.CUI1PPRz_Z1hRTVk.webp

对独立 AI Grid 的需求

苦涩的教训告诉我们,要通过扩大计算规模来解锁前沿 AI 的进展。经验记录证实了这一点。专注的、独立的团队已经展示了……

Waymo 比人类司机安全13倍

出了点问题,但别担心——我们再试一次。!https://abs-0.twimg.com/emoji/v2/svg/26a0.svg 某些隐私相关的扩展可能导致问题…