2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

Bonree ONE 技术实践:如何用 5 台机器资源支撑起 2000 探针同时起跑?

  • 2024-01-25
    北京
  • 本文字数:2237 字

    阅读完需:约 7 分钟

大小:1.15M时长:06:40
Bonree ONE技术实践:如何用5台机器资源支撑起2000探针同时起跑?

背景


日志、指标和调用链是可观测性取得成功的三要素,而这些的实现离不开数据采集,探针采集并上报数据,后端服务接收后对数据进行处理分析,从而达到可观测的目的。通常,服务器性能数据、服务相关数据、服务之间的调用等数据经由探针采集上报,经过 ETL 处理后,成为可观测性分析中的重要依据。

 


探针采集的数据量大小依赖两个要素:


  • 采样率:采样率越高,数据量越大,对应可观测性分析会更加全面。

  • 业务调用量:当业务服务调用频率越高, 相应的数据量越大,对应可观测性分析会更加复杂。

2000 探针难在哪儿?


由于私有化部署资源有限,需要尽可能多的满足企业监控需求,因此博睿数据的内部测试会以 5 台机器的集群作为部署标准,在资源固定的前提条件下,随着探针量的增多,主要难点如下:


  • 业务场景存在峰值波动,高峰期的服务调用是低峰期的 2 倍+

  • 业务数据是多种业务场景同时存储,常见的涉及调用链数据、指标数据、服务快照数据等

  • 5 台机器是混合部署多种服务,比如数据接入的 controller 服务、报警服务、业务查询服务、数据调用链存储、数据快照存储、数据指标存储、消息中间件等,在更大数据量写入的情况下,针对 CPU、内存、磁盘 IO 的消耗都是抢占式的,影响服务的稳定性。

如何优化瘦身?


针对以上难点,首先想到的就是瘦身,即降低服务组件的数量,减少服务资源抢占的情况。其次是业务存储迁移,弃用高消耗组件,使用低消耗组件满足业务需求。最后在合理的数据存储方案的前提下,优化存储服务本身的性能,满足业务查询稳定性。

降低组件数量


hadoop 存储套装节点数据量比较多,而且是 java 服务,资源消耗较大,内存需求较大。hadoop 的主要业务方是 AI 服务,AI 团队基于自研的数据处理框架,打造了全新一代的 swiftAI 服务,组件种类只有 1 个,部署服务最少只需要 2 个。


业务存储优化


当前 APM 业务的存储分为三大块:指标数据、调用链和快照。目前主要使用三种不同的存储系统分别来支撑,指标数据存储在 clickhouse、调用链使用 ES,快照数据存储在自研的对象存储系统中。在实际的业务场景中,会交叉访问多种存储引擎,在资源估算时,没有一个合理的尺度来衡量资源的上下界。在单台机器上,如果部署多种存储引擎,势必会对服务稳定性产生影响,所以,减少 APM 业务的存储组件,成为一个可行性较高的方案。


探针调用链数据基于 ES 来存储,有以下痛点:


  • 调用链数据与关联的快照数据写入时机存在不一致,基于 ES 的数据写入存在延迟。

  • ES 消耗资源较大,在 CPU 和 IO 上消耗较多,影响其他服务稳定性。

  • ES 的查询效率不稳定,随着数据量越来越大,甚至出现无法查询出数据的问题。


探针调用链快照数据基于对象存储系统来存储,有以下痛点:


  • 写入不稳定,存在毛刺。

  • 对 cpu 和 IO 消耗较大,容易触达瓶颈。


针对以上两个组件的明显痛点,迁移数据到 clickhouse 进行存储,获益如下:


  • 调用链数据和关联的快照数据同时写入 clickhouse,保证关联数据的一致性。

  • clickhouse 写入稳定,即使是针对挽回数据,资源消耗较小。

  • clickhouse 读取稳定,clickhouse 支持查询熔断、资源限制等手段,提高 clickhouse 查询稳定性。

  • 基于合理的攒批策略,clickhouse 整体资源消耗平稳,毛刺点波动很小。


存储服务优化


相关的业务存储进行了聚焦,那么势必会对 clickhouse 服务产生影响, clickhouse 服务的优化以及运维监控就显得更加重要。


在优化方面,我们从以下三个方向着手:


服务参数调优


  • max_bytes_before_external_group_by:通过维度聚合查询时,当 RAM 消耗超过这个阈值, GROUP BY 会把多余的临时数据输出到文件系统并在磁盘进行处理计算,通常会建议配置成当前服务内存的 80%。

  • max_bytes_before_external_sort:涉及数据排序时,当 RAM 消耗超过这个阈值,ORDER BY 会把多余的临时数据输出到文件系统并在磁盘进行排序计算,通常会建议配置成当前服务内存的 80%。

  • max_memory_usage:用户单条查询可以使用的最大内存,通常会建议配置成当前服务内存的 80%。

  • max_execution_time:单条查询可以执行的最长时间,这个根据业务响应时间的上限来定。


物化视图、索引、projection 的合理使用


针对不同的场景,使用不同的加速手段,解决查询效率的问题。


  • 高频查询要充分利用主键索引。

  • 主键索引满足不了的高频查询,借助索引来加速。

  • 涉及排序操作,利用 projection 和物化视图来加速,优先使用 projection。

  • 无法使用 projection 的场景,使用物化视图。


监控、容错的支持


为了解决多业务接入带来的复杂影响,需要对集群有充分的监控,且在容错性上需要考虑更多因素。


  • 监控首要跟踪的监控是写入和读取两个方向,比如每分钟写入量,写入耗时、查询 QPS 等,针对特定敏感业务可以个性化跟踪。针对节点本身的状态信息进行监控,比如服务负载、merge 任务数、parts 数量等,这些指标可以及时发现服务的稳定性风险。针对集群的均衡性进行监控,比如 parts 数据同步的延迟时间、各个节点的查询均衡性、各个节点的写入均衡性等,避免集群倾斜。

  • 容错性写入节点单节点异常,不影响整体服务写入。clickhouse 单节点异常,不影响整体集群的写入也不影响读取。


效果


  • AI 组件瘦身

 


  • 调用链等相关数据迁移到 CK



ES+对象存储

CK

节省比例

cpu

118.58C

27.2C

77.07%

内存

629.12G

65.4G

89.61%

存储

59.072T

28.97T

50.96%


总结


为了实现 5 台集群可以支持到 2000 探针,我们首先要做的就是减法,减少组件之间的影响,让单个组件可以发挥更大的效能。再围绕这个组件,构建更全面的生态,包括监控、运维和操作等入口。最后在围绕业务使用场景进行深入优化,保证整体服务稳定性。


后续我们会在 clickhouse 内核上深入发力,不断拓展 clickhouse 的使用场景,与开发者一起分享博睿数据在 clickhouse 方向的探索和实践,助力 Bonree ONE 在更快、更准、更稳定的方向上走得更远。

2024-01-25 15:086687

评论

发布
暂无评论
发现更多内容

过程控制 通讯维护经验总结(2)

万里无云万里天

工业 工厂运维 过程控制

钢铁行业数字化利器,TDengine 时序数据库荣获金恒科技“年度卓越供应商”

TDengine

tdengine 时序数据库 国产时序数据库

集成平台如何实现“应用即服务”?深入解析 iPaaS 的服务化理念

谷云科技RestCloud

数据处理 数据传输 集成平台 应用集成 ipaas

百度亮相 SREcon25:搜索稳定背后的秘密,微服务雪崩故障防范

Baidu AICLOUD

微服务架构 SRE

文心快码3.5S开发古风射覆小游戏,它帅到我了!

Comate编码助手

AI 编程 文心快码 文心快码3.5S AI编程助手

暖哇科技陈鸿出席泰康保险集团第七届1024科技节,分享“AI+专识+多智能体”理赔实践

暖哇科技

每个团队都需要“超级引导者”

ShineScrum

敏捷 沟通艺术 引导者

AI英语听说训练系统:用AI技术打通“能听会说”的最后一公里

上海拔俗

从“腰酸背疼”到“帝王坐”,只差一把保友金豪E2 Pro人体工学椅

袁袁袁袁满

人体工学 人体工学椅 办公椅

云栖实录 | AI原生搜索引擎:Elasticsearch 换“芯”——AI原生搜索内核增强技术

阿里云大数据AI技术

elasticsearch 阿里云 AI搜索

隐语SecreFlow:如何全面提升MPC多方安全学习的性能?

隐语SecretFlow

算法 算子 多方安全学习

护理技能AI智能交互训练系统:用AI技术重构护理实训新范式

上海拔俗

大规模微服务系统中的雪崩故障防治

百度Geek说

百度 SRE 系统稳定性 雪崩预防和应对 微服务架构治理

AI语料库智慧教学平台:用AI技术解锁语料教学新生态

上海拔俗

Sentieon | 水稻全基因组(WGS)分析全流程

INSVAST

Sentieon WGS 分子育种 全基因组分析流程 农作物

由 Mybatis 源码畅谈软件设计(七):从根上理解 Mybatis 一级缓存

京东科技开发者

2025海外达人营销趋势报告:品牌出海必看的五大变化

Wolink

跨境电商 海外社媒营销 海外营销推广 品牌出海 达人营销

《哪吒2》与国产超高清标准突围

脑极体

AI

快递鸟 API 接口全面解析:企业级物流解决方案

快递鸟

图灵进化招人啦

慢点科技SlowTech

OceanBase 分布式数据库的 ETL 实践:从抽取到实时分析

谷云科技RestCloud

postgresql 数据同步 ETL 数据集成 oceanbase

过程控制 软件维护经验总结(2)

万里无云万里天

工业 工厂运维 过程控制

纯配时效服务-双Redis集群设计

京东科技开发者

Java数据库应用原型

码语者

Java

设计稿如何快速生成代码?5个提效AI工具盘点

职场工具箱

设计 figma AI工具 设计稿转代码 AI 代码助手

开了 8 年母婴店,靠微擎守住了 20000 会员的信任,再也不怕数据泄露

微擎应用市场

Squid 可观测性最佳实践

观测云

squid

2025青科会启幕,网易伏羲携游戏AI前沿实践共话未来

网易伏羲

知乎 网易伏羲 游戏AI 具身智能 群体智能

由 Mybatis 源码畅谈软件设计(四):动态 SQL 执行流程

京东科技开发者

AI赋能:新一代海外网红营销服务公司的核心技术优势

Wolink

跨境电商 出海 海外社媒营销 海外营销推广 品牌出海

海外达人营销全攻略:如何精准锁定高ROI的海外红人?

Wolink

跨境电商 海外社媒营销 海外营销推广 品牌出海 达人营销

Bonree ONE技术实践:如何用5台机器资源支撑起2000探针同时起跑?_可观测_冬青_InfoQ精选文章