AI智能总结
统一资源池重塑CLS规模红利 zlinzlin(林兆祥)腾讯云CLS日志引擎研发负责人T13工程师2024-06-14 1.百PB规模日志业务挑战及应对 成本、检索、分析:三大核心能力10倍级提升 2.统一资源池重塑云服务规模红利 目录 降本九成:IO资源池优化成本近90%提效十倍:算力资源池提升分析能力数十倍技术路线讨论:统一资源池VS超大规模集群VS弹性扩缩容 3.方法论:数据驱动·理论模型优化法探索优化理论边界,CLS连续实现10倍级优化的底层逻辑 1.百PB规模日志业务挑战及应对 成本、检索、分析:三大核心能力10倍级提升 目录 CLS项目概况成本敏感的海量日志检索、分析平台 •CLS(Cloud Log Service)是腾讯云提供的一站式日志服务平台,支持数据采集、检索分析、数据清洗、可视化告警的一体化服务•CLS日志引擎核心能力:海量日志检索&分析能力;日志数据量大,客户对日志成本比较敏感•业务规模快速增长:售卖规模年增长超100%,总规模超过百PB 产品架构图:支持60+种日志&指标数据源,数据采集、检索分析、数据清洗、可视化告警的一体化可观测SaaS服务 挑战&应对检索能力入选顶会VLDB2022,比主流搜索引擎提高数十倍 CLS时序搜索引擎性能提升数十倍: 1.日志搜索以文本搜索为主,过去20多年,业界以传统文本搜索引擎支撑日志检索业务2.日志具有强时间属性,传统搜索引擎在百亿条规模日志检索中,仅时间索引就需要加载30GB3.CLS提出时序搜索引擎理念,平均性能相对主流搜索引擎ES提升38倍,成果入选数据库顶会VLDB ES(基于Lucene)为业界主流搜索引擎(数据库排名第7,搜索引擎子类第一) 行业影响力:部分VLDB评委评价 大规模日志实时分析对工业界来说是一个重要的问题,很多读者都会对腾讯的解决方案感兴趣。相对Lucene来说,这篇论文的方案带来了超过一个数量级的查询性能提升。作者们大幅提升了这种应用场景下常用查询的效率,因此也能带动相关云服务质量的有效提升。 挑战&应对分析能力深挖云服务优势,比主流分析引擎提高数十倍 日志业务分析场景 海量日志用户行为分析,比如UV,PV等基于日志分析的监控告警能力客户将CLS当作大数据分析引擎使用 复杂分析能力优化核心里程碑* •超越搜索引擎阶段:引入双引擎技术架构,相对主流搜索引擎提升10倍级复杂数据分析能力(2000万/分钟到2亿/分钟)。•接近分析引擎阶段:不断优化两个引擎之间的交互效率,累计将分析能力提升数十倍(50亿/分钟),分析能力逼近主流大数据分析引擎。•超越分析引擎阶段:引入统一计算架构,充分挖掘云服务规模优势,再次将分析能力提升数十倍(500亿+/分钟),实现了分析能力上面对主流大数据分析引擎的超越。 *备注:此处提的分析能力指最差场景的分析能力;通常情况下,较优场景的分析能力是最差场景的10倍以上,最优场景可达百倍千倍。从研发角度,提升最差场景的分析能力对产品更有实质意义 最差场景数据分析能力走势图 挑战&应对成本能力用成本解决客户问题,用技术解决成本问题 •应对:用技术解决成本问题,累计优化单位成本90% •挑战:用成本快速解决客户不断提高的能力期待 •2022,2023,2024连续三年,日志引擎单位成本降幅每年超过50%•连续获得腾讯云成本优化排行榜第一名 •10倍级流量跳变保持服务稳定•超越搜索引擎的检索体验•超越大数据分析的分析体验 1.百PB规模日志业务挑战及应对 2.统一资源池重塑云服务规模红利 目录 降本九成:IO资源池优化成本近90%提效十倍:算力资源池提升分析能力数十倍技术路线讨论:统一资源池VS超大规模集群VS弹性扩缩容 统一资源池降本九成提效十倍,重塑云服务规模红利 CLS降本增效,是传统软件改造为云服务过程中,释放规模红利的结果。 孤立集群:主流开源社区关注【单个集群】的能力最大化和成本最小化 统一资源池:关注【100个集群】作为一个整体,如何做到能力最大化和成本最小化 【孤立集群】集群隔离、节点隔离、磁盘隔离,导致云服务流失了规模优势集群隔离:单集群0.5P能力,导致云服务100P规模和传统软件0.5P没有实质差别,云只是“代客运 【统一资源池】解决资源孤岛问题,实现算力资源和IO资源全局流通存算分离架构打破IO隔离,统一计算架构打破集群及节点间的算力隔离 IO资源池存算分离,解决IO资源隔离问题 传统ES架构 问题背景 早期CLS使用社区版ES作为存储底座,成本居高不下,每年数亿,其中存储成本占比近80%。ES基于Share Nothing架构,数据存储于本地磁盘 理论成本推导 打破磁盘IO资源隔离,可以用性能更差、单位成本更低的存储介质;打破磁盘容量隔离,可以提高存储使用率;存算分离架构优化,可以减少一半算力&存储冗余; 解决方案: 基于对象存储存算实施存算分离,整体可将日志引擎成本降低为原生ES的10% 计算成本:1副本/2副本*50%=25%存储成本:1/2*65%/100%*0.1/0.35*(1-30%)=6.4%整体成本:20%*25%+80%*6.4%=10.1%注:其中*50%为我们同步推进的全局负载均衡提升一倍CPU使用效率注:其中(1-30%)为我们同步推进的压缩算法优化,减少数据量30% IO资源池IO并行化独家实现对象存储上热数据搜索分析能力 问题背景 •对象存储比本地磁盘慢百倍,业界只用来做冷存储•日志数据以短周期存储(热数据)为主,冷数据降本空间有限 理论模型思路 •IO并行化可以通过并行没有依赖关系的IO,将数百个IO调度到数个IO周期内完成•以IO为中心设计检索流程,解决对象存储响应速度比本地磁盘慢百倍的问题 解决方案 •IO并行化方案实现行业独家在对象存储上具备热数据检索分析能力 IO并行化效果测试数据 算力资源池联邦分析,分析能力提升10倍+ 问题背景:超大规模分析问题 大规模分析能力是客户评价CLS能力的重要依据。其特点为低频次,分析规模大; 超大规模分析难题: 提前准备资源:资源利用率低,资源浪费。按需扩容资源:分析属于实时请求,很难在秒级扩容出上千个节点。技术约束:集群规格有上限,目前集群最大规模200台左右 理论分析:孤立集群影响系统能力 单个分析只能用到单个集群资源,事实上云服务中同时存在数十个集群 解决方案:联邦计算提高算力规模数十倍 将大规模分析任务拆分到多个集群中同时执行,可用算力从单个集群的百台规模提升到数千台。 算力资源池全局负载均衡,解决算力可预测性问题 问题背景:算力可预测性问题 突发流量 数据特征差异问题:基于数据量做任务拆分,由于数据特征不同,相同数据需要的算力并不相同突发流量问题:可能出现客户突发写入流量,导致特定节点写入算力需求突增,对调度实时性提出很高的要求 算力结构分解:轻状态计算+重状态计算 轻状态计算:编制数据索引,只依赖少量索引配置,占比2/3重状态计算:合并索引文件,索引文件数据量较大,占比1/3 解决方案:全局负载均衡支持轻状态计算迁移 远程索引服务:支持轻状态计算调度到其他节点执行实现了地域级全局负载均衡,降低了对调度的要求,提高了资源利用率 算力资源池抢占式分析,进一步优化算力 问题背景:大规模分析算力问题 为超大规模分析预留足够的算力,造成平时算力闲置 算力结构分解:实时计算+非实时计算 非实时计算:将小索引文件合并为大索引文件,允许分钟级甚至十分钟级延迟,占比1/3。实时计算:常驻:为日志数据编制倒排索引,要求写入日志3s内可检索,占比2/3。脉冲:执行大规模分析,规模大,持续时间短 计算类型分布 解决方案:抢占式分析优先保障分析时效 抢占式分析,大规模分析过程中,临时抑制非实时计算,优先保障分析时效 技术路线讨论统一资源池VS超大规模集群 超大规模集群问题 统一资源池:小集群,大联邦;集群隔离,资源共享 故障半径大:故障的爆炸半径大是超大规模集群的最致命缺陷。集群故障影响客户规模多故障恢复时间长:计算密集型服务,系统恢复需要消耗大量的资源,故障恢复时间和集群规模成正比运维经验缺乏:超出业界主流集群规模,技术和运维经验上面都需要逐渐沉淀隔离性差:缺乏足够多的集群去隔离不同敏感程度的客户 集群自治理念:集群平时保持独立模式运营,非必要不去动用跨集群的能力。兜底理念:极端情况下,可以人工关闭跨集群能力。在关闭跨集群能力的情况下,由于坚持了集群自治的理念,系统依然能够保障99%的可用性。 技术路线讨论统一资源池VS弹性扩缩容 弹性扩缩容 优点:门槛低,见效快,中小规模业务增强弹性能力的首选缺点:不能利用业务特性,无法挖掘业务相关的资源效率;导致大集群模式 统一资源池:贴近业务需求,充分利用业务特性,挖掘规模红利 联邦集群:毫秒级+数万核+零成本的扩容能力时间维度资源调度:抢占式分析,IO并行化 统一资源池+弹性扩缩容 降低扩容的必要性:统一资源池强化了资源的流动性,只要任何一个集群存在空闲资源,就没有必要给业务扩容。提升扩容的效率:实现了算力和IO资源的充分流动;只需要扩一些没有业务数据的【空】集群,就能快速补充算力和IO资源 目录 技术路线讨论:统一资源池VS超大规模集群VS弹性扩缩容 3.方法论:数据驱动·理论模型优化法 探索优化理论边界,CLS连续实现10倍级优化的底层逻辑 理论模型优化法优化的关键是什么? 分享一个chatgpt编的故事: 在一个古老的村落,李老汉偶然在家中发现了一张祖传的藏宝图。这张图描绘了一个深埋地下五米的巨大宝藏。虽然年事已高,但他决心追寻这份财富。 他仔细研究藏宝图,对照地形,确定了宝藏的位置。带着工具,他独自踏上了寻宝之旅。途中,他凭借坚韧和智慧,克服了重重困难。 到达指定地点后,李老汉开始挖掘。日复一日,他的双手布满了伤痕,但他的决心未曾动摇。终于,在一次铁锹下去,他听到了金属撞击声。他小心翼翼地挖开,露出了满箱的金银珠宝。 看完故事,思考一些问题: 1.李老汉能够挖到宝藏,最关键的因素是什么?2.作为一名程序员,如果非常明确的知道系统的某个模块有10倍级的优化空间,那么系统优化是不是就跟拿着藏宝图挖宝藏一样简单?3.作为一名程序员,我们该如何去发现属于自己的藏宝图? 理论模型优化法案例分析识别主流搜索引擎百倍级性能缺陷 问题背景 CLS早期以ES(ElasticSearch)为技术底座;ES是业界主流开源搜索引擎(数据库排名第7,搜索引擎子类排名第一);发现百亿数据的简单select count(*) where xxx耗时秒级 ES为业界主流搜索引擎(数据库排名第7,搜索引擎子类第一) 理论模型推导 将检索出来的倒排链遍历一遍,耗时应该在10ms级别 冲突 理论模型推导值和压测值差距百倍 成果 时序搜索引擎,性能比ES快数十倍,成果被数据库顶会VLDB2022收录 理论模型优化法案例分析揭示“磁盘型KV必慢于内存型KV”之谬误 “常识”:磁盘型KV比内存型KV慢 磁盘速度比内存慢因此,磁盘型KV速度比主流内存型KV速度慢 数据模型推导 在KV服务耗时构成中:网络平均响应速度1msSSD磁盘平均响应速度0.1ms,磁盘耗时占比约10%(0.1/1.1=9%) 冲突 理论模型显示磁盘速度不会导致磁盘型KV和内存型KV响应速度有实质差别 成果 在业务场景下,实现了比内存KV更快的磁盘KV,提高了性能,优化了90%+的成本,年优化成本数亿 理论模型优化法案例分析定义优化理论边界 模块背景IP地址解析服务 问题:输入IP地址,从IP库里面(900万条记录)检索对应的信息,返回ip对应的信息。 系统实现