Dropbox 以存储用户文件而闻名,但在用户最需要时迅速取回内容同样重要。对 Retrieval Experiences 团队而言,这意味着打造尽可能快速、简单而强大的搜索体验。然而,我们在2022年7月开展研究时发现,最常见的抱怨之一仍然是搜索太慢。用户表示,如果搜索更快,他们就更愿意经常使用 Dropbox。
当时,搜索网页提交查询并收到服务器响应,在第75百分位(p75)需要约400–450毫秒。对期待快速结果的用户来说,这实在太慢,因此我们开始寻找降低搜索延迟的方法。
初步分析表明,获取搜索结果的时间大约一半用于往返 Dropbox 服务器,即网络延迟;另一半用于决定返回哪些结果,即服务器延迟。我们决定同时处理两方面问题。部分同事研究如何降低服务器延迟,而我们调查网络延迟。

网络延迟的变化远比服务器延迟大。它取决于本地网络状况、用户与 Dropbox 数据中心的距离,甚至一天中的具体时段。工作时间,许多用户在网络连接较好的办公室办公;夜间则可能在连接较弱的家中使用。Dropbox 大部分数据中心位于北美,与北美相比,欧洲延迟最高可达其2倍,亚洲可达3倍。25%的搜索请求来自欧洲,15%来自亚洲,因此降低网络延迟可以惠及相当大一部分用户。
此时我们意识到,单凭自己的团队无法解决网络延迟问题。我们与 Traffic 团队合作评估方案,决定测试一种可能的解决办法:HTTP3。

理论上的加速
当时 Dropbox.com 使用基于 TCP 的 HTTP2。最新版本 HTTP3 使用 UDP,通过以下方式缩短建立连接和服务并行请求的时间:
- 在连接开始阶段引入零往返时间(0RTT)。与 HTTP2 相比,HTTP3 避免了 TCP 协议必须完成的三次握手,少一次往返。此外,使用0RTT时,后续 HTTP3 连接可以在同一个数据包中建立安全连接并发送实际请求,而 HTTP2 必须分别发送这些数据。
- 消除队头阻塞。TCP 面向字节流,要求严格按顺序处理数据包。如果某个流中的数据包丢失,客户端 TCP 协议栈可能延迟后续流的数据包,即使各流互不相关。使用 UDP 时,一个流被阻塞,其他流仍然可以向应用交付数据。

HTTP3 听起来很有前景。理论上,它不仅能加快搜索,还能加速 Dropbox 的其他操作,从文件上传到内容建议。不过,实际影响仍不明确。HTTP3 完全可能比 HTTP2 更慢,尽管这种可能性不大。
我们需要确认 Dropbox 确实会受益于迁移。因此,我们决定先在一部分流量上测试 HTTP3。
设置实验
为了评估 HTTP3 在 Dropbox 服务器上的性能,Traffic 团队创建了一个通过 HTTP3 提供主网站内容的测试子域。这个测试站点经过专门设计,可安全地通过 HTTP3 发送特定 API 请求,不影响主站用户。
我们为测试站点建立了支持 HTTP3 的空操作(no-op)API 端点。服务器不执行任何操作,因此服务器延迟接近零,剩下的延迟就主要是网络延迟。接着设计了一系列操作,模拟网站的典型请求流量,包括搜索。模拟分为三个阶段:
- 准备。先顺序发送两个 HTTP3 请求,忽略计时数据。这仅用于预热 HTTP2 与 HTTP3 服务器相关的网络缓存,使后续比较公平。这个步骤尤其必要,因为首次连接总是 HTTP2,客户端在此时收到支持 HTTP3 所需的信息,后续连接才会尝试使用 HTTP3。
- 运行 HTTP2 对照组。并行向空操作端点发送5个 HTTP2 请求,记录每个请求的网络耗时。这模拟用户当时从服务器获取数据的方式,构成对照组。
- 运行 HTTP3 实验组。再向同一空操作端点并行发送5个请求,这次使用 HTTP3。记录各请求的网络耗时,与 HTTP2 比较。
测试最重要的一点是并行发送请求,这模拟了用户与 Dropbox 网页交互时同时发出许多请求的真实场景。更重要的是,它帮助我们判断,消除队头阻塞是否真的能加快并行请求。如果这些请求没有变快,HTTP3 在实际使用中就很可能也无益处。
为避免影响用户性能体验,每次页面加载只允许执行一次 HTTP3 测试,且必须等用户完成搜索后才执行。实验在2022年12月至2023年1月间进行了约两周,峰值流量经常超过每秒1500次查询(QPS),成功收集了世界各地大量用户的样本。
比较结果
在两周实验期间,每天发送约30万个 HTTP3 请求。
对全球大部分用户而言,HTTP3 将网络延迟降低了5–15毫秒,约5%。虽然有所改善,但普通用户可能几乎感受不到。到了 p90,改善就非常明显:延迟降低48毫秒,约13%;p95 则降低146毫秒,约21%。可能的原因是,HTTP3 消除队头阻塞,能更好处理并行连接中的丢包;连接质量较差的网络更容易丢包,所以在较高百分位上收益更明显。
| HTTP3 vs. HTTP2 | |
|---|---|
| p25 | -4.23ms / -4.73% |
| p50 | -5.55ms / -4.15% |
| p75 | -13.1ms / -5.78% |
| p90 | -47.6ms / -12.5% |
| p95 | -146ms / -20.9% |
在较高百分位按地区划分后,结果更加突出。亚洲 p90 网络延迟约降低77毫秒,p95 约降低200毫秒。欧洲、北美与中美洲等高流量地区的绝对改善较小,但相对改善大致相近,p95 约为22%。
| HTTP3 vs. HTTP2 | 北美与中美洲 | 欧洲 | 亚洲 |
|---|---|---|---|
| p25 | -3.20ms / -6% | -2.34ms / -2% | -3.73ms / -2% |
| p50 | -4.21ms / -5% | -3.84ms / -3% | -5.12ms / -2% |
| p75 | -9.03ms / -8% | -11.1ms / -6% | -15.0ms / -4% |
| p90 | -44.9ms / -17% | -47.3ms / -13% | -77.3ms / -14% |
| p95 | -118ms / -22% | -141ms / -21% | -200ms / -22% |
HTTP3 的下一步
实验成功证明,HTTP3 在第90百分位及以上显著改善延迟。虽然只有约10%的用户能明显感觉到改善,但他们正是遭遇高延迟、最需要改进的用户。国际用户将是最大受益者,因为最高延迟集中在北美以外地区。
这次大规模实验带来两个主要认识:
- 0RTT 的收益相对不那么重要,因为几乎所有到 dropbox.com 的连接都是长连接。
- HTTP3 对队头阻塞的处理显著降低了延迟,尤其是在更容易丢包的网络中。
调查开始时,我们只知道 HTTP3 的理论收益。现在,我们更了解它在实际应用中的影响,不仅针对搜索,也针对文件操作以及基于机器学习的内容建议等 Dropbox 全站功能。鉴于 p90 以上用户的性能收益相当可观,Traffic 团队正计划建设可投入生产的 HTTP3 支持。
这个高影响项目来自 Dropbox 多个团队的合作,尤其是 Retrieval Experiences 和 Traffic。特别感谢 Roland Hui、Sarah Andrabi、Khugan Shanmugeswaran、NetEng 团队以及 Security 团队,帮助我们把理论研究变为现实。
~ ~ ~
如果你对构建创新产品、体验与基础设施充满兴趣,欢迎加入我们共同打造未来!在 dropbox.com/jobs 查看职位,并在 Instagram 和 Facebook 关注 @LifeInsideDropbox,了解创造更高效工作方式的团队生活。












暂无评论内容