Cache Hit Rate Lru模拟器 工具列表
交互式模拟器

Cache Hit Rate Lru模拟器

并列查看命中率曲线、栈距离示意图和延迟分解,判断增加缓存容量何时收益变小。

参数输入
缓存容量 C 6

缓存同时可保存的槽数。

工作集大小 W 16

被访问的不同键的总数。

局部性 α 0.90

访问集中在少数键上的程度(Zipf)。0 表示均匀。

暂停时,拖动滑块即可即时更新结果。

实时 LRU 缓存动画

绿色闪烁=命中(将键移到队首);红色闪烁=未命中(淘汰队尾的最久未使用槽,并插入队首)。左侧为 MRU(最近使用),右侧为 LRU(最久未使用)。访问序列具有 Zipf 式局部性。

实时统计
缓存容量 C
总访问数
命中数
命中率
物理模型与主要公式

$$H \approx 1-\exp\left[-\alpha\frac{C}{W}\right],\quad H=\frac{\text{hits}}{\text{accesses}}$$

真实LRU命中率强烈依赖访问分布。本页用局部性系数近似,用于详细访问轨迹分析前的容量敏感性判断。

如何解读

命中率曲线显示容量增加后的收益饱和点。

栈示意图说明最近使用元素留在缓存中的机制。

延迟图显示未命中率如何直接变成后端负载。

通过对话理解Cache Hit Rate Lru

🙋
看Cache Hit Rate Lru时,应该先看哪里?调整工作集大小 W后,图和数值都会变化,有点不好判断。
🎓
先看命中率,但不要只看数字。用LRU命中率曲线确认前提形状或状态,再用栈距离示意图看分布和变化方式。命中率曲线显示容量增加后的收益饱和点。
🙋
工作集大小 W变大时命中率会变化,这比较直观。那缓存容量 C的影响要怎么读?
🎓
逐步调整缓存容量 C并观察未命中率,就能看出哪个因素在控制结果。真实LRU命中率强烈依赖访问分布。本页用局部性系数近似,用于详细访问轨迹分析前的容量敏感性判断。 不要只算一个点,要在实际可能波动的范围内来回检查。
🙋
延迟与负载主要用来做什么?只看普通曲线不够吗?
🎓
延迟与负载用来找危险边界,以及余量突然变小的输入组合。栈示意图说明最近使用元素留在缓存中的机制。 例如Web/API缓存容量初步设计时,比单点结果更重要的是条件稍微偏离后会怎样。
🙋
如果命中率满足要求,就可以直接采用这个条件吗?
🎓
这里适合作为初步判断。它对估算数据库或CDN未命中负载和比较缓存成本与延迟改善有帮助,但最终判断仍要结合标准、实测值、详细分析和厂家条件。延迟图显示未命中率如何直接变成后端负载。

实际使用

Web/API缓存容量初步设计。

估算数据库或CDN未命中负载。

比较缓存成本与延迟改善。

常见问题

先看命中率和未命中率。然后用LRU命中率曲线确认前提状态,再用栈距离示意图读取分布和偏差。命中率曲线显示容量增加后的收益饱和点。
先单独调整工作集大小 W,再以相近幅度调整缓存容量 C,比较命中率的变化。延迟与负载能显示哪些输入组合会让余量或性能快速变化。
适合用于Web/API缓存容量初步设计。不要只看单点数值,而应扩大输入范围,确认命中率是否仍有余量,再决定是否进入详细分析。
真实LRU命中率强烈依赖访问分布。本页用局部性系数近似,用于详细访问轨迹分析前的容量敏感性判断。最终判断仍需结合标准、实测值、详细分析和厂家条件。

使用指南

  1. 输入工作集大小 W(项数)与缓存容量 C(项数,均为 item 计数,非 MB/GB)
  2. 设置局部性 α(0.2〜8,默认2.2):值越大表示访问越集中于子集,相同容量下命中率越高
  3. 输入请求速率(req/s)与未命中惩罚(ms),命中率、未命中率、平均额外延迟与后端负载实时更新
  4. 增大缓存容量 C,观察命中率提升趋于饱和的位置以及后端负载的下降

具体计算示例

采用默认值(工作集 W=50,000 项、缓存容量 C=8,000 项、局部性 α=2.2、5,000 req/s、未命中惩罚 30 ms):命中率 H = 1−exp(−α·C/W) = 1−exp(−2.2×8000/50000) ≈ 29.67%,未命中率 70.33%,平均额外延迟 = 30×0.7033 ≈ 21.1 ms,后端负载 = 5,000×0.7033 ≈ 3,516 req/s。将缓存容量 C 翻倍至 16,000 项后命中率升至 50.54%,后端负载降至约 2,473 req/s;容量越大收益递减(趋于饱和)。

实务注意事项

  1. LRU在局部性0.85以上时与最优离线算法性能接近,低于0.6时考虑LFU或ARC策略替代
  2. 命中率曲线拐点对应最优缓存容量:继续扩容收益<成本增长,可用二分查找算法定位
  3. 栈距离>缓存容量的访问会产生缓存穿透,直接增加数据库/磁盘I/O,单次穿透延迟通常150ms以上
  4. 生产环境需预留20-30%缓存容量应对工作集峰值波动,避免命中率急剧下降