遥遥领先!鲲鹏ARM架构下国产数据同步能力大幅提升16.9倍

file

在上篇文章《2.6倍!WhaleTunnel客户POC实景对弈DataX》发布之后,一个客户突然向我们控诉其苦DataX久矣,因为是在信创的鲲鹏ARM CPU上运行 ,每天同步需要很长时间,问我们可以不可以帮忙解决。

提起信创ARM CPU,大数据同仁们是又爱又恨,爱是因为价格真的便宜,恨是因为做大数据任务真的是不行,性能比X86系列慢不是1-2倍,所以搭建大数据平台一般都必选X86,避免使用ARM,要不用的机器个数远超过X86服务器。

ARM CPU真的处理大数据不行吗

ARM CPU 使用了RISC指令集(X86使用的是CISC),RISC有指令执行速度快和优化并行处理的特点,它非常适合于需要高吞吐量和并行处理的计算任务,而CISC架构由于其指令集的复杂性和灵活性,在某些特定应用中可能更适合处理复杂计算。所以在大数据复杂计算领域,X86服务器有天然的优势。

而在数据同步领域里,ARM架构反而有一些先天优势:

  • ARM处理器和南桥、网卡、SAS存储器集成在一起的,在内存带宽、IO带宽和网络带宽方面均有显著提升,内存通道数量,网络通道数量都会高于X86 CPU,而这在数据同步当中是很重要的计算参数。
  • RISC指令执行速度快,并行度高,在数据同步这种没有复杂数据计算的场景,理论效率要高于CISC。
  • CPU核数高于X86 CPU,一般一颗CPU都有32-64个内核,2颗CPU就有64-128个内核,结合RISC指令集的效果,在同步领域里反而瓶颈会在带宽、CPU通道这里。

综上,我们看到在同步领域,ARM CPU是有先天优势的,但是为什么在很多大数据场景下,相应的软件发挥不出来效果呢?主要是因为引擎核心没有针对ARM CPU的特性进行优化,利用传统的X86设计的引擎内核运行ARM的服务器上,效果一定不会好。

WhaleTunnel针对ARM CPU优化

在《WhaleStudio 2.6正式发布,WhaleTunnel同步性能与连接器数量再创新高!》一文中可以看到,WhaleTunnel 2.6版本在ARM CPU环境下做了大量优化:

  1. 内存映射文件和零拷贝技术:为了最大限度地减少I/O开销,Zeta Engine采用了内存映射(mmap)技术和零拷贝(zero-copy)技术,直接在内存中操作文件数据。这样不仅加快了数据处理速度,还降低了系统资源的消耗。
  2. 内存对齐:Zeta Engine确保数据结构在内存中的对齐性,有效减少了内存访问的开销。内存对齐优化不仅提高了内存访问的效率,还提升了数据处理的整体性能。
  3. 高效算法:Zeta Engine使用了适合ARM架构的高效算法来适配RISC指令集,减少不必要的计算和数据移动。通过高效的排序和过滤算法,显著提升数据转换和处理的效率。Zeta Engine算法优化确保了在数据密集型任务中,系统能够保持卓越的性能。
  4. 多核架构利用:Zeta Engine充分利用ARM CPU的多核架构,将ETL任务分解为更小的任务,进行多线程或多进程并行执行。通过并行化处理,显著缩短了数据处理的时间,提升了系统的吞吐量。

在这个优化场景下,WhaleTunnel可以充分利用ARM CPU多核、内存、网络带宽大、处理简单数据场景效率高的优势。

WhaleTunnel在鲲鹏信创ARM CPU下的实测,快16.9倍!

回到开头的场景,我们直接在客户1台 1CPU的信创服务器下进行了部署。

在部署解压缩的时候,我们心凉了一半。 正常在X86环境下是需要2-3分钟就可以解压完成的包,但在这台ARM服务器上解压缩了1多个小时还没有完成,这个CPU效率真的让我们测试的擦把汗。

客户给出了这台机器做数据同步的DataX时间和同步速率如下,可以看到同步速率在2.46MB/s,12万条记录用了18.5分钟(感觉和我们在ARM环境下解压缩效率差不多):

file

经过漫长的解压缩和安装步骤后,我们程序员战战兢兢进行了现场POC测试。惊喜来了!测试结果显示,在客户这个环境下,整个表平均同步速率是41.72MB/s,峰值达到62.23MB/s,同步数据20万条,平均速度是DataX的16.9倍!

file

瞬间,程序员们觉得过去几个月的加班没有白费,流下了激动的口水(我答应他们如果在客户实际场景下真的优化有效果,请大家吃大餐)。

小结:信创ARM能不能打还是看大数据引擎核心有没有做优化

WhaleTunnel的ARM场景下的实测给大数据平台工程师们带来了福音,在信创大趋势下,在数据集成和数据同步领域里,终于有一个可以放心大胆使用信创ARM CPU平台而不用担心性能拖后腿的工具了。

可以看到,使用WhaleTunnel+信创ARM CPU环境既可以满足国产信创的要求,又会大幅节约成本,还会得到强大的数据同步处理性能,一箭三雕!

如果您对数据集成和同步有需求,对WhaleTunnel感兴趣,欢迎咨询详情(V 177 4359 2110)。🔽🔽

白鲸开源

白鲸开源是一家开源原生的DataOps商业公司,是国家高新技术企业,由多个Apache Foundation Member成立,80%员工都是 Apache Committer,运营2个全球Apache开源项目(DolphinScheduler, SeaTunnel)。白鲸开源已根据全球最佳实践发布商业版产品WhaleStudio(含白鲸数据调度平台WhaleScheduler和白鲸数据集成平台WhaleTunnel)。我们致力于打造下一代开源原生的DataOps 平台,助力企业在大数据和云时代,智能化地完成多数据源、多云及信创环境的数据集成、调度开发和治理,以提高企业解决数据问题的效率,提升企业分析洞察能力和决策能力。

了解更多

公司网站: www.whaleops.com

邮箱: xiyan@whaleops.com

本文由 白鲸开源 提供发布支持!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/741585.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

P3993 [BJOI2017] 同构 题解

Description 你有 \(n\) 个点,你可以在这 \(n\) 个点之间连无向边,两个点之间至多只能连一条边,也不允许连自环,问至多能连多少条边。 但这个问题的答案显然是 \(\frac{n(n-1)}{2}\) 条。所以有一个额外的限制,要求这个图不存在非平凡的自同构。 一个图 \(G\) 有非平凡的自…

极具未来感的京东.Vision来了!最潮的人已收藏!

没错!随着今天Apple Vision Pro国行版的正式发售,京东.Vision也正式和大家见面了!京东.Vision是什么?它是一款京东专为Apple Vision Pro用户打造的好玩、好逛、好买的沉浸式体验购物平台。首期,京东.Vision以“家”场景为核心,覆盖了包括三星电视、哈曼卡顿、MORRORART、…

2024 「全球软件研发技术大会】-刘兴东分享京东的AIGC革新之旅

大模型和开源的发展将带来全球软件研发技术的新变革,AI使代码自动化应用达到新水平,开源工具的云化和应用的AI化将促中国软件迎来新一轮的爆发。开发者正在迎接新一轮的技术浪潮变革。由CSDN和高端IT咨询和教育平台Boolan联合主办的2024年度「全球软件研发技术大会」于7 月4日…

VisualStudio各版本_MSC_VER和_MSC_FULL_VER宏定义值列表

这些值可以用于在C++中判断版本和C++特性支持情况。

利用SpringBoot+rabbitmq 实现邮件异步发送,保证100%投递成功

在之前的文章中,我们详细介绍了 SpringBoot 整合 mail 实现各类邮件的自动推送服务。 但是这类服务通常不稳定,当出现网络异常的时候,会导致邮件推送失败。 本篇文章将介绍另一种高可靠的服务架构,实现邮件 100% 被投递成功。类似的短信自动发送等服务也大体相同。 一、先来…

CS50P: 1. Conditionals

运算符 python中有 >= 和 <= ,其余和C一样 python支持 90 <= score <= 100C Python|| or& and布尔运算 True or False 选择语句 if if x < y:print("x is less than y") if x > y:print("x is greater than y") if x == y:print(&q…

Jenkins集成部署SpringBoot

Jenkins集成部署SpringBoot 1. 前言 随着业务的增长,需求也开始增多,每个需求的大小,开发周期,发布时间都不一致。基于微服务的系统架构,功能的叠加,对应的服务的数量也在增加,大小功能的快速迭代,更加要求部署的快速化,智能化。因此,传统的人工部署已经心有余而力不…

【转】-Java实现生产者和消费者的5种方式

Java实现生产者和消费者的5种方式 该博客转载自​掘金​的​Java实现生产者和消费者的5种方式 1. 前言 生产者和消费者问题是线程模型中的经典问题:生产者和消费者在同一时间段内共用同一个存储空间,生产者往存储空间中添加产品,消费者从存储空间中取走产品,当存储空间为空…

geoserver忘记密码的解决过程

geoserver文档 https://www.osgeo.cn/geoserver-user-manual/security/passwd.html 在geoserver数据目录,找到 /data/GeoserverData/security/usergroup/default/users.xml文件将<user enabled="true" name="admin" password="***">中的p…

最近很火的Vue Vine是如何实现一个文件中写多个组件

相信你最近应该看到了不少介绍Vue Vine的文章,这篇文章我们另辟蹊径来讲讲Vue Vine是如何实现在一个文件里面写多个vue组件。前言 在今年的Vue Conf 2024大会上,沈青川大佬(维护Vue/Vite 中文文档)在会上介绍了他的新项目Vue Vine。Vue Vine提供了全新Vue组件书写方式,主要…

[Java SE] 字节操作工具类:ByteUtils

0 引言与嵌入式软件数据交互过程中,必然涉及各种的、大量的字节操作场景。如:16进制与10进制、2进制间的转换,字符串、byte数组与int之间的转换等。故此有此核心工具类的沉淀。1 ByteUtils 依赖 <properties><!-- 编程提效工具 --><lombok.version>1.18.2…

Android Framework之Activity启动流程

原文地址 https://juejin.cn/post/7212432799848579133 启动Activty触发点为Activity中的startActivity。 Activity startActivity -> Instrumentation --> execStartActivitytry {intent.migrateExtraStreamToClipData(who);intent.prepareToLeaveProcess(who);//int re…