单集群 100 节点!资源占用远小于 Grafana Mimir —— GreptimeDB 海量数据写入性能报告

GreptimeDB 在行业标准测试 Prometheus-Benchmark 当中以 100 个 8c16g 规格节点的集群,在 datanode 峰值水位为 CPU 38%内存 40% 的负载下,承接了每秒约 4000 万点 的写入流量。总体活跃时间线 6.1 亿条 ,每十分钟更新 615 万条时间线,在测试的 1.5 小时内均能稳定写入。

(图 1:GreptimeDB 数据采入)

测试结果说明 GreptimeDB 的架构设计能够支撑超大规模的数据集群,并且在同等规模集群下,GreptimeDB 的资源占用极低。对比同样适用对象存储的 Grafana Mimir,在处理同等规模的数据下,Mimir 需要消耗 5 倍以上的 CPU 和内存资源(基于 Mimir 测试报告折算)。

测试环境及工具

本轮测试中所使用的 Prometheus Benchmark 压测工具的相关关键参数及解释如下: (图 2:tsbs 参数)

通过如上配置最终构建的理论数据产生速率约每秒 4160 万点。

测试环境中一共有两个集群,分别是上述的 Prometheus Benchmark 的压力集群和 GreptimeDB 的数据库集群。两个集群均在 AWS EKS 部署。其中,GreptimeDB 集群所使用的镜像版本为 v0.8.2 所涉及到的各组件的部署规格及数量如下表所示: (图 3:v0.8.2 涉及参数)

GreptimeDB 集群的 WAL 组件为 AWS EBS;SST flush 以及 compaction 均基于 S3 完成。本地盘规格为 GP3,S3 为相同 Region 的 Standard 类别。在本次测试中不包含节点调度迁移等的情况,各个节点之间使用 Round-Robin Selector 均匀分配数据分区,一共有 200 个 Regions。

详细测试数据

写入吞吐

本次测试一共持续约 1.5 小时,总和写入量以及分节点的写入量监控数据如下,可以看到在 1.5 个小时内集群写入流量能一直稳定保持在每秒约 4000 万点的速率: (图 4:写入流量示例)

资源占用

对 GreptimeDB 集群水位进行观察,可以看到如下数据:

  • Datanode 的总和 CPU 使用率。总核数为 100 * 8c = 800c,峰值为 305,约占 38%。 (图 5:Datanode 的总和 CPU 使用率)

  • Frontend 的总和 CPU 使用率。总核数为 50 * 8c = 400c,峰值为250,约占 63%。 (图 6:Frontend 的总和 CPU 使用率)

  • Datanode 的总和内存占用。总内存为 100 * 16GiB = 1600 GiB。峰值为640GiB,约占 40%。 (图 7:Datanode 的总和内存占用)

  • Frontend 的总和内存占用。总内存为 50 * 16GiB = 800 GiB。峰值为 110 GiB,约占 14%。 (图 8:Frontend 的总和内存占用)

存储写入流量

下图是 S3 写入流量的统计,带宽占用基本在 512 MiB/s 以下,最终一个半小时内的总写入量为 2.8 TiB。 (图 9:S3 写入流量统计)

而 WAL 组件观测到的写入流量约为 800 MiB/s。通过两张图的对比能够看到 GreptimeDB 对数据进行了有效压缩,压缩比达到 75% ,降低了数据刷写流量。最终压测结束时 S3 的目录大小远小于 1 TiB。 (图 10:WAL 组件观测到的写入流量)

结语

100 个节点远远不是上限,本次测试验证了 GreptimeDB 架构无限扩展的能力,对比同样基于对象存储的 Grafana Mimir 有 5 倍的资源消耗降低。

下一步我们将进一步优化性能和测试,使 GreptimeDB 可承载海量时序指标数据的读写和分析。本次测试的版本是 v0.8.2, GreptimeDB 已发布 v0.9.0 版本,引入了日志引擎和全文检索能力,进一步优化了性能和稳定性,朝着成为一个融合 Metrics、Logs 和 Events 的统一时序数据库迈进了一大步,欢迎各位开发者测试使用。

关于 Greptime

Greptime 格睿科技专注于为可观测、物联网及车联网等领域提供实时、高效的数据存储和分析服务,帮助客户挖掘数据的深层价值。目前基于云原生的时序数据库 GreptimeDB 已经衍生出多款适合不同用户的解决方案,更多信息或 demo 展示请联系下方小助手(微信号:greptime)。 欢迎对开源感兴趣的朋友们参与贡献和讨论,从带有 good first issue 标签的 issue 开始你的开源之旅吧~期待在开源社群里遇见你!添加小助手微信即可加入"技术交流群"与志同道合的朋友们面对面交流哦~ Star us on GitHub Now: https://github.com/GreptimeTeam/greptimedb 官网:https://greptime.cn/ 文档:https://docs.greptime.cn/ Twitter: https://twitter.com/Greptime Slack: https://greptime.com/slack LinkedIn: https://www.linkedin.com/company/greptime/

微软开源基于 Rust 的 OpenHCL 字节跳动商业化团队模型训练被“投毒”,内部人士称未影响豆包大模型 华为正式发布原生鸿蒙系统 OpenJDK 新提案:将 JDK 大小减少约 25% Node.js 23 正式发布,不再支持 32 位 Windows 系统 Linux 大规模移除疑似俄开发者,开源药丸? QUIC 在高速网络下不够快 RustDesk 远程桌面 Web 客户端 V2 预览 前端开发框架 Svelte 5 发布,历史上最重要的版本 开源日报 | 北大实习生攻击字节AI训练集群;Bitwarden进一步脱离开源;新一代MoE架构;给手机装Linux;英伟达真正的护城河是什么?
{{o.name}}
{{m.name}}

猜你喜欢

转载自my.oschina.net/u/6839317/blog/15101284