在数据时代,企业拥有前所未有的大量数据资产,但如何从海量数据中发掘价值成为挑战。数据分析凭借强大的分析能力,可从不同维度挖掘数据中蕴含的见解和规律,为企业战略决策提供依据。数据分析在营销、风险管控、产品优化等领域发挥着关键作用,帮助企业提高运营效率、优化业务流程、发现新商机、增强竞争力。低成本高效率的完成对海量数据的分析,及时准确的释放数据价值,已成为企业赢得竞争优势的利器。StarRocks on AWS 为这个课题交出了一份答卷。
StarRocks 作为新一代极速全场景 MPP(Massively Parallel Processing)数据库,架构简洁,采用了全面向量化引擎,并配备全新设计的 CBO(Cost Based Optimizer)优化器,实现亚秒级的查询速度,尤其是多表关联查询表现尤为突出。StarRocks 还支持现代化物化视图,进一步加速查询。
StarRocks 不仅能很好地支持实时数据分析,实现对实时更新数据的高效查询,3.0 及以后版本的存算分离架构,对于数据湖中的数据也能够实现极速查询,配合 AWS 提供的高性能高可用的云平台,能够极大地助力客户轻松构建数据湖仓。
关于AWS Graviton
AWS Graviton 是 AWS 推出的基于 ARM 架构的自研处理器,专为优化云计算性能和成本效益而设计。Graviton3 相较于前代产品 Graviton2 有了显著的性能提升,其单线程性能提高了 25%,整体性能提升了 50%。
Graviton3 支持 DDR5 内存,提供更高的内存带宽和更低的延迟,使其在处理大规模数据分析、高性能计算(HPC)和内存密集型应用方面表现尤为出色。 在机器学习工作负载方面,Graviton3 的性能提升更为显著,可以达到高达 3 倍的加速,这得益于其增强的矩阵乘法指令集。 Graviton3 处理器集成了先进的硬件安全功能,包括内置的内存加密和更高效的加密算法支持,确保数据在传输和存储过程中的安全性,满足敏感数据处理的需求。 Graviton3 具有更高的能效,能够在相同的性能下减少能耗,这对于希望降低运营成本和碳足迹的企业来说尤为重要。
通过使用基于 Graviton3 的实例,如 Amazon EC2 C7g 和 R7g,用户可以在保持高性能的同时显著降低计算成本。
测试方法以及结论
参与本次对比测试的节点选型:
实例具体配置
实例具体配置
价格:根据 AWS 官网[1]定价, 按需的价格为 0.5781 USD/hour CPU:ARM AWS Graviton 16 vCPUs, 32GB Memory, 15 Gbps Network Bandwidth CPU 频率:6GHz CPU cache:
SQL
Caches (sum of all):
L1d: 1 MiB (16 instances)
L1i: 1 MiB (16 instances)
L2: 16 MiB (16 instances)
L3: 32 MiB (1 instance)
2.6GHZ
价格:根据 AWS 官网定价, 按需的价格为 0.68 USD/hour CPU:x86 16 vCPUs, 32GB Memory, 12.5 Gbps Network Bandwidth CPU 频率:9GHz CPU cache:
SQL
Caches (sum of all):
L1d: 384 KiB (8 instances)
L1i: 256 KiB (8 instances)
L2: 10 MiB (8 instances)
L3: 54 MiB (1 instance)
集群版本
集群版本
具体的测试方法和代码这里不再展开,有兴趣的读者可以参考: StarRocks TPC-DS Benchmark[2] | TPC-H Homepage[3]
详细测试结果
详细测试结果
说明
说明
以上每个测试集的数据都是对测试集内 99 个 Query 的延时求和。
C6i
在 C6i 机型上的测试结果。
C7g 优化 bitshuffle 使用的指令 #44607[4]。 优化 CRC 使用的 NEON 指令 #44607。 优化 filter_range 使用的 NEON 指令 #44194[5]。 在 C7g 机型上,进行了如下优化后的测试结果: C6i/C7g:任务跑在 C6i 上的耗时是 C7g 的几倍
简单来说,比值越高,说明优化效果越明显。
另外,这里给出在 OLAP 典型应用场景中的优化情况:Scan & Bitshuffle / Aggregate / HashJoin
由上表可知, 在 OLAP 常见的场景中,优化指令集之后的,性能均有 15% 以上的提升,尤其是在 Aggregate 场景下,达到了 43% 的性能提升。
总结
基于 StarRocks 当前的优化情况和最新的测试数据来看,StarRocks on Graviton3 (C7g) 的总体性能比 Ice Lake 8375C (C6i) 实现了30%以上的综合性能提升。再结合 AWS Graviton3 自身的价格优势(C7g 相对于C6i 有 15% 的成本优化),StarRocks on C7g 相对于 C6i 可以实现 50% 以上的性价比提升。
如果您有计划在 AWS 上部署您的 StarRocks 服务,或者您已经运行 StarRocks on AWS,Graviton3 都将会给您带来更优的体验和更低的成本。
另外,还有很多客户在密切关注最新的 AWS Graviton4。Graviton4 与当前一代 Graviton3 处理器相比,性能提升高达 30%,独立核心增加 50% 以上,内存带宽提升 75% 以上,为在 Amazon EC2 上运行的工作负载提供最佳性能和能效,这让我们非常兴奋,近日 Graviton4 在 global region 正式 GA,我们会需要一些时间做定向优化和测试,所以建议大家现阶段可以优先使用 StarRocks on AWS Graviton3。
附录
有关 C++ 针对 ARM NEON 指令集的优化,可以参考这个 GitHub 链接:https://github.com/aws/aws-graviton-getting-started/blob/main/SIMD_and_vectorization.md 有关 SIMD 优化思路,可以参考这个链接:https://perf.bcmeng.com/4%20optimization-points/simd.html 测试环境中 FE 以及 BE 中配置参数调整如下:
fe.conf --- catalog_trash_expire_second
be.conf --- max_compaction_concurrency=0
trash_file_expire_time_sec=0
性价比提升计算方式:
如果 A 相对于 B,性能提升 30%,价格降低 15%,那么总体性价比的提升有多少?
性能:A= 1.3B
价格:A= 0.85B
本篇作者
Angela Ren:亚马逊云科技解决方案架构师,负责基于亚马逊云科技云计算方案架构的咨询和设计,推广亚马逊云科技云平台技术和各种解决方案。
Li Jing:亚马逊云科技解决方案架构师,负责亚马逊云科技云计算方案咨询和设计。目前主要专注在现代化应用改造和机器学习领域的技术研究和实践。曾就职于 F5,甲骨文,摩托罗拉等多家 IT 公司,有丰富的实践经验。
[1]https://aws.amazon.com/cn/ec2/pricing/on-demand/
[5]https://github.com/StarRocks/starrocks/pull/44194
关于 StarRocks
StarRocks 全球开源社区也正飞速成长。目前,StarRocks 的 GitHub star 数已达 8300,吸引了超过 350 位贡献者和数十家国内外行业头部企业参与共建,用户社区也有过万人的规模。凭借其卓越的表现,StarRocks 荣获了全球著名科技媒体 InfoWorld 颁发的 2023 BOSSIE Award 最佳开源软件奖项。