当前位置:首页 > 报告详情

【知乎贾承昆】知乎多云数据缓存实践.pdf

上传人: s**** 编号:157175 2024-03-16 41页 2.03MB

1、知乎多云数据缓存实践知乎多云数据缓存实践贾承昆知乎数据平台负责人个人介绍知乎数据平台团队负责人曾任职于阿里云、猿辅导等公司,目前在知乎负责大数据平台和数据架构相关的工作多年 DevOps 和大数据架构领域工作经验1.背景和简介介绍知乎的多云背景和现状3.基于 Alluxio 的多云缓存方案主要介绍 Alluxio 在知乎算法场景的落地2.自研组件 UnionStore 介绍知乎自研的跨机房数据缓存系统4.总结和展望业务收益和社区贡献Part1 Part1 背景和介绍背景和介绍背景和简介多云多机房,专线互联一个大数据机房,多个在线机房自建基础设施和公有云设施共存多云架构训练在线服务离线数据HDF

2、SPodPodPodPod在线服务机房,部署大部分的对外服务机器学习机房,承担大部分的训练计算大数据机房,负责数据存储多机房的挑战高并发的数据访问有限的专线带宽统一的访问接口理想的多云架构训练在线服务离线数据HDFSPodPodPodPod每个机房增加一层数据缓存,确保数据重复读取只经过一次专线对已经缓存过的数据有加速效果支持 FUSE/HTTP 等访问接口数据加速层数据加速层数据加速层Part2 Part2 自研组件自研组件 UnionStore UnionStore自研组件 UnionStore强一致元数据S3 兼容的 API提供本机房缓存能力训练在线服务离线数据HDFS推理服务对象存储U

3、nionStore对象存储UnionStoreUnionStore 的问题缺少元数据缓存,接口性能强依赖 HDFS缓存层选择了云厂商的对象存储,其带宽随着业务发展逐渐成为瓶颈UnionStore 自身没有存储,虽然设计简单,但是读取数据的延时非常高Part3 Part3 基于基于 Alluxio Alluxio 多云缓存方案多云缓存方案Alluxio 简介Alluxio 功能调研高性能的数据和元数据缓存 透明缓存,无需改造业务逻辑 支持多种元数据缓存策略丰富的 UFS 支持 HDFS S3 .多种 API 支持 Alluxio Client S3 API POSIX活跃的社区 各个大厂的实践案

4、例 活跃的 Github 社区场景一场景一 训练加速训练加速业务场景数据集更新频率低,多个 epoch 重复读取数据的不同区块GPU 资源昂贵分布式训练,通常需要使用 FUSE 访问数据数据湖存储机器学习平台FUSEHDFS对象存储专线训练场景的痛点问题统一 POSIX 访问数据读取慢导致 GPU 利用率低机房专线稳定需求支持 POSIX统一不同 UFS 的访问接口支持本地缓存数据湖存储机器学习平台Alluxio 加速层TrainingPodFUSETrainingPodTrainingPodTrainingPodHDFS对象存储Alluxio Fuse 性能测试FUSE 部署模式Daemon

5、Set()共享缓存节省资源挂载点恢复CSI隔离性好运维容易Alluxio 集群部署模式瘦集群胖客户端3 Master+3 Worker数百 FUSE 客户端单节点 10TB NVME 缓存AlluxioMasterJob MasterMasterJob MasterMasterJob MasterWorkerJob WorkerWorkerJob WorkerWorkerJob WorkerKubernetesTrain PodFUSE PodTrain PodTrain PodFUSE PodTrain PodTrain PodFUSE PodTrain Pod生产环境问题1.FUSE 不稳

6、定容易异常退出2.训练性能不稳定,慢于本地磁盘3.Alluxio Master 节点负载高,容易崩溃1.FUSE Pod 健康检查失败2.FUSE 容器 OOM原因:1.Direct Memory 配置不合理2.Kernel Cache 的回收不受控制,需要预留解决思路:1.-XX:MaxDirectMemorySize=16G2.预留 Kernel CacheTotal Pod MemoryFUSE KernelJVMDirect MemoryHeap3.挂载点恢复挂 载 点 恢 复 指 的 是:当 FUSE Pod Crash 之后,业务 Pod 的

word格式文档无特别注明外均可编辑修改,预览文件经过压缩,下载原文更清晰!
三个皮匠报告文库所有资源均是客户上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作商用。
本文主要介绍了知乎在多云环境下进行数据缓存实践的经验。首先,知乎的数据机房面临多机房访问、专线带宽限制等问题,因此提出了基于Alluxio的数据缓存方案。Alluxio能提供高性能的数据和元数据缓存,支持多种文件系统,并且有活跃的社区支持。在知乎的实践过程中,通过Alluxio的透明缓存,可以显著提升数据读取速度,减少GPU的闲置时间,提高训练效率。同时,Alluxio也存在一些问题,如FUSE的不稳定性和Master节点的负载过高等。针对这些问题,知乎提出了一些解决方案,如优化Direct Memory配置、预留Kernel Cache、挂载点恢复等。此外,知乎还自研了UnionStore组件,用于跨机房的数据缓存,但在实践中遇到了元数据缓存不足、云厂商对象存储带宽瓶颈等问题。最后,知乎对Alluxio进行了进一步的优化,如禁用access time自动更新、适当调长metadata sync间隔等,有效提升了训练效率。总的来说,知乎通过引入Alluxio,优化了数据缓存方案,提升了训练和推理服务的性能,同时也在社区中贡献了自己的经验和优化方案。
"知乎如何通过多云缓存优化数据访问?" "Alluxio在知乎算法场景中的实际应用如何?" "知乎自研组件UnionStore解决了哪些跨机房数据缓存问题?"
客服
商务合作
小程序
服务号
折叠