首页 > 其他分享 >遥遥领先!鲲鹏ARM架构下国产数据同步能力大幅提升16.9倍

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

时间:2024-07-10 10:43:18浏览次数:7  
标签:同步 WhaleTunnel CPU 内存 鲲鹏 数据 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)。

标签:同步,WhaleTunnel,CPU,内存,鲲鹏,数据,ARM,16.9
From: https://www.cnblogs.com/DolphinScheduler/p/18293434

相关文章

  • 内存管理-15-Arm64汇编
    1.Arm64汇编lsr指令LSR是ARM架构的位移动指令,用于逻辑右移操作。它将第一个操作数的位向右移动指定位数,并根据需要将符号位(在有符号数操作中)扩展到空出来的位。语法:LSR{条件}{S}移位量,寄存器条件是可选的,指定为如EQ、NE等,用来指明只有在特定条件下才能执行指令。S是可......
  • 【ARMv8/v9 GIC- 700 系列 1 -- Programmers model for GIC-700】
    请阅读【ARMGICv3/v4实战学习】文章目录GIC-700Programmersmodel寄存器实现和访问模式接口宽度和数据格式访问类型安全寄存器访问地址映射和页面GIC-700RegistermappagesSummaryGIC-700ProgrammersmodelGIC-700是ARM的一种通用中断......
  • 新时代【机器学习】与【Pycharm】:【随机数据生成】与智能【股票市场分析】
    目录第一步:准备工作1.1安装必要的库小李的理解:1.2导入库小李的理解:第二步:生成和准备数据2.1生成随机股票数据小李的理解:2.2数据探索与可视化小李的理解:2.3数据处理小李的理解:2.4选择特征和标签小李的理解:第三步:拆分数据集小李的理解:第四步:训练决策树模......
  • 无痛从pycharm转到vscode学习 vscode小白新手教程/创建文件/
    前提:之前用的是pycharmpython3.8 1、安装VScode链接:夸克网盘链接:https://pan.quark.cn/s/da4d566aa64b提取码:T7Hz1.1安装python扩展        在右边的插件里面搜索python2.1在桌面创建一个文件夹通过vscode--文件导入2.2创建py文件直接将文件名后缀改......
  • 从EMUI到HarmonyOS,再到HarmonyOS Next
    参考https://baijiahao.baidu.com/s?id=1802244117198483502演进历史EMUI:EmotionUI年份版本特性2012EMUI1.0定制化Android体验2013EMUI2.0更丰富的个性化选项,优化了系统稳定性和流畅度2014EMUI3.0界面设计进行全面升级2015EMUI4.0系统优化、......
  • HarmonyOS NEXT开发实战:Navigation页面跳转对象传递案例
    介绍本示例主要介绍在使用Navigation实现页面跳转时,如何在跳转页面得到转入页面传的类对象的方法。实现过程中使用了第三方插件class-transformer,传递对象经过该插件的plainToClass方法转换后可以直接调用对象的方法,效果图预览使用说明从首页进入本页面时,会传递一个类对......
  • HarmonyOS NEXT开发实战:发布图片评论案例
    介绍本示例将通过发布图片评论场景,介绍如何使用startAbilityForResult接口拉起相机拍照,并获取相机返回的数据。效果图预览使用说明通过startAbilityForResult接口拉起相机,拍照后获取图片地址。实现思路创建CommentData类,实现IDataSource接口的对象,用于评论列表使用Lazy......
  • ARM汇编与机器码、汇编指令
    文章目录1. CISC与RISC指令集2. ARM汇编指令3. 汇编与机器码4. 汇编指令格式5. MOV指令6. BL指令7. B指令8. ADD/SUB指令9. LDR/STR指令1. CISC与RISC指令集根据指令的复杂度,所有CPU可以分为两类:CISC(ComplexInstructionSetComputer)描述:复杂指令集......
  • HarmonyOS NEXT 学习笔记2 --百度小练习
    1.百度的小案例:@Entry@ComponentstructPage0707_baidu{@Statemessage:string='HelloWorld';build(){Column({space:20}){Image('https://www.baidu.com/img/flexible/logo/pc/result.png').width('50%'......
  • QT移植到imx6ull ARM板子上面
    目录前言:1.资料准备:2.编译tslib库3.编译qt库源码4.配置arm板子qt和tslib环境5.qt安装和配置6.新建QT工程7.arm板子运行第一个qt程序8.关闭arm板子出厂gui程序前言:本文章是移植qt库到imx6ull上面能够运行,同时移植tslib库(触摸屏)到imx6ull上面,适用于大部分arm板......