定时器算法:时间轮、最小堆与层级时间轮
一台繁忙的 Nginx 服务器上有 100 万个活跃连接,每个连接都有 keepalive 超时定时器。如果用最小堆管理这些定时器,每次新连接到来都要 O(log n) 插入——100 万个定时器意味着 20 次比较。时间轮用 O(1) 解决了这个问题。
Linux 内核、存储与网络、可观测性、系统架构与大模型基础设施的工程笔记:机制拆解、踩坑复盘与可核对证据,少空谈。
共 1 篇文章 · 返回首页
一台繁忙的 Nginx 服务器上有 100 万个活跃连接,每个连接都有 keepalive 超时定时器。如果用最小堆管理这些定时器,每次新连接到来都要 O(log n) 插入——100 万个定时器意味着 20 次比较。时间轮用 O(1) 解决了这个问题。