Linux 路由查找性能曲线:一次 Spectre 缓解抹掉七年优化
来源:vincent.bernat.ch — 2026-11-09
📋 概述
作者把 IPv4 与 IPv6 路由表查找的基准测试更新到 Linux 7.3,在关闭 CPU boost 的 AMD EPYC 8024P 上跑全表视图与合成前缀集。结论很扎心:6.5 引入的 SRSO 缓解让每次函数返回多花约 20 个周期,IPv6 查找因此回退约 200 纳秒,把 4.15 到 5.9 年间累积的优化全部抹平。
🔑 核心要点
- IPv4 查找只穿过约 4 个函数,受影响约 30 纳秒;IPv6 要穿过约 25 个,受影响 200 纳秒
- 作者本人也在 5.11 引入过小回退:只要调整 ip_ignore_linkdown 的条件判断顺序就能省下 5 个周期
- IPv6 测试集包括 26 万前缀的近期全视图、4 万前缀的 2017 年视图,以及 /48 与 /128 随机前缀
- IPv4 用的是超过一百万前缀的近期全视图,以及 50 万条前缀的两个历史与合成集
- 建议先用 lscpu 看清本机启用了哪些缓解,部分缓解的效果取决于微码与固件版本
💡 金句
6.5 引入的那次 200 纳秒回退,把之前所有的优化都一笔勾销了。
← 返回 Lobsters 首页