Skip to content

freedkr/k3

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mooncake KV Cache 分布式缓存策略研究

项目概述

基于Mooncake论文的分布式LLM KV Cache管理系统实现,重点研究前缀感知热点迁移策略在多节点环境下的性能表现。

核心发现

最终结论

策略选择取决于成本模型

  • GPU成本视角:集中式策略更优(GPU成本 >> 存储成本)
  • 传统视角:Random策略最优(命中率/集中度 = 1.34)

GPU成本远超存储成本

GPU计算成本: ~$3/小时 (A100)
存储成本: ~$0.02/GB/小时
成本比例: GPU:存储 ≈ 150:1

结论:1%命中率提升的价值远超100%数据冗余的成本

问题与解决

  1. RequestQueue Bug

    • 问题:负载队列从未更新,导致负载均衡失效
    • 修复:正确维护请求队列,实现动态负载计算
  2. 场景差异

    • 论文:单节点全局缓存池优化
    • 实现:分布式多节点负载均衡
    • 适配:增加前缀级热点检测和动态复制因子
  3. 策略优化

    • 原始:静态复制、被动迁移
    • 改进:动态复制因子、预测性迁移、智能节点选择

测试结果

GPU成本加权评分(GPU成本:存储成本 = 100:1)

策略名称              净收益    评估        分析
----------------------------------------------------------------
PrefixAware(优化)     +50.5    ⭐正收益    命中率提升价值超过冗余成本
PrefixAware(论文)     +38.2    ⭐正收益    有效提升,冗余成本可接受
Enhanced(均衡)        +20.1    ⭐正收益    保守但稳定
Random               -73.9    ❌亏损      过度分散,性能太差

传统评分(命中率/集中度)

策略名称                        命中率    负载集中度   传统评分
----------------------------------------------------------------
Random                         34.1%     25.5%       1.339 ✅
CacheAware                     34.4%     45.8%       0.752 ⚠️
PrefixAware(论文)              35.0%     53.3%       0.657 ⚠️
PrefixAware(优化)              35.1%     53.1%       0.661 ⚠️

热点迁移策略

智能复制机制

  • 不是复制到所有节点
  • 不是只迁移到单个节点
  • 而是基于热点强度动态选择1-3个低负载节点复制

复制因子计算

热点强度 ≥ 0.5 → 3个副本
热点强度 ≥ 0.2 → 2个副本
热点强度 ≥ 0.1 → 1个副本

预测性迁移

  • 线性回归分析访问趋势
  • 预测未来热点并提前迁移
  • 综合评分 = 趋势权重×0.4 + 强度权重×0.4 + 频率权重×0.2

技术实现

核心组件

  • PrefixPattern: 前缀访问模式追踪
  • HotspotMetrics: 热点强度检测
  • PrefixAwareHotspotSelector: 智能节点选择器
  • 动态复制因子 + 预测性分析

文件结构

main.go               # 测试入口
simulator.go          # 模拟器核心实现
mooncake_trace.jsonl  # 23,608个真实请求数据

运行方法

go run main.go simulator.go

经验总结

  1. 实现质量决定性能 - 基础bug会导致算法完全失效
  2. 场景适配是关键 - 单节点算法需针对分布式调整
  3. 前缀匹配确实有效 - 正确实现可获得1%性能提升
  4. 成本模型决定最优策略 - GPU成本 >> 存储成本时,优先命中率最大化

参考文献

Mooncake: A KVCache-centric Disaggregated Architecture for LLM Serving

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages