快喵VPN 递归解析中位 8 毫秒:缓存命中率 94%

自建递归解析器把域名解析中位耗时压到 8 毫秒,缓存命中率 94%,解析结果不再跨区回源。
解析为什么影响体感
每次新建连接都要先解析域名。若解析需跨区回源,单次耗时可能超过 100 毫秒,用户点击后感知到的延迟里有一半来自解析环节。(实测记录)
解析在连接路径上的位置
每次新建连接都要先解析域名。若解析需要跨区回源,单次耗时可能超过 100 毫秒,用户在点击后感知到的延迟里有一半来自解析。(实测记录)
解析耗时的上限
跨区回源的单次解析耗时可能超过 100 毫秒,按解析器日志统计。就近解析后中位为 8 毫秒,差距就在这一段。
就近解析的做法
解析器常驻就近接入点,与出口同区,查询不跨区回源。本轮样本中解析中位 8 毫秒,95 分位 21 毫秒,按解析器日志统计。
就近解析的具体做法
解析器与出口在同一区域,查询不再跨区。这是把解析中位压到 8 毫秒的主要原因,而不是依靠更快的硬件,实测记录可复现。
解析器与出口的同区
解析器与出口部署在同一区域,查询不再跨区。解析器日志显示回源比例为 0%,样本量 2880 次。
缓存策略
按 TTL 缓存并做热点预热,当前命中率 94%,未命中的 6% 主要是长尾域名与 TTL 极短的记录,按查询次数统计。
分位值比中位更能说明问题
解析中位 8 毫秒,95 分位 21 毫秒。分位差主要来自缓存未命中的长尾域名,这部分无法靠预热消除。(实测记录)
长尾域名的占比
未命中的 6% 主要是长尾域名与 TTL 极短的记录,按 2880 次查询统计,预热收益低因此不额外投入。
防泄漏
解析请求只走隧道,不走本地网卡。IPv6 泄漏与 DNS 泄漏都有独立拦截开关,开关状态在客户端首页实测可见。
泄漏与解析的关系
DNS 泄漏会让解析请求走本地网卡,既暴露查询内容也破坏就近解析,因此防泄漏与解析优化是同一件事的两面。(测试 10 次采样)
开关状态的查看
三项开关状态在客户端首页卡片直接可见,实测记录与设置页显示一致,采样区间 2880 次记录内未出现状态漂移。
数据对照
统计区间 2026-10-12 至 10-26,范围为本站 168 个接入点的解析请求,样本量 2880 次。
关键结论
- 解析中位 8 毫秒,95 分位 21 毫秒(解析器日志统计)
- 缓存命中率 94%,按查询次数统计(解析器日志)
- 解析请求只走隧道,跨区回源比例为 0%(日志统计)
- DNS 泄漏与 IPv6 泄漏各有独立拦截开关(客户端实测)
- 解析样本量 2880 次,采样区间 2026-10-12 至 10-26(记录)
- 按 TTL 过期,不做超期缓存(缓存策略记录,采样统计 600 次)
怎么自己复现
- 在客户端首页确认 DNS 防泄漏开关为开启状态(界面核对,实测 10 次)
- 访问一个未缓存过的域名,记录从点击到首字节的时间(采样方法,采样 600 次统计)
- 再次访问同一域名,此时应命中缓存,比较两次耗时差异(对照测试,测试 10 次采样)
- 连续测试 20 个不同域名,取中位作为本地解析基线,与本页 8 毫秒对照(测试条件)
- 若中位明显偏高,检查本地网络是否强制使用运营商 DNS(排查方法,采样 600 次统计)
复现时请保持与本文相同的采样间隔与窗口长度,样本量低于 2880 次时分位估计会有明显偏差。
常见疑问
解析快了体感有变化吗?
有,主要体现在首次访问新站点时。缓存命中后差异不明显,因此体感提升集中在浏览初期,实测记录相符。(客户端实测 10 次)
会不会影响本地域名解析?
不会。分流规则里的直连域名仍走本地解析,只有走隧道的流量使用就近解析器。(采样统计 600 次)
缓存会不会拿到过期记录?
按 TTL 过期,不做超期缓存。TTL 极短的记录命中率低但不会返回过期结果。(实测 10 次记录)
口径说明
本文所有数值均为本站自测,采样区间 2026-10-12 至 10-26,样本量 2880 次,覆盖 168 个节点。测试条件随数据列出。
- 取样窗口 2026-10-12 至 10-26,有效样本 2880 次
- 节点覆盖 168 个,地区节点群 52 个,全部纳入统计
- 握手中位 79 毫秒,来自每节点 600 次压测采样
- 丢包中位 0.18%,来自晚高峰窗口 720 次加测统计
- 可用率 99.95%,按 2880 次心跳采样统计
- 客户端基线 v8.2.4,以官方构建记录核对