互联网 频道

【鲲鹏BoostKit技术速递】鲲鹏KAE加速引擎再升级:更高吞吐,更低负载

  当企业数据从PB级向ZB级增长,存储成本、性能瓶颈成了绕不开的坎——既要存得多、存得省,又要处理得快、不卡顿,怎么破?针对此问题,各大存储厂商均推出相应的数据压缩算法,最大化数据存储密度,降低用户存储成本,显著提升相同物理容量下的用户可用容量。

  鲲鹏KAE(Kunpeng Accelerator Engine,鲲鹏加速引擎)是基于鲲鹏处理器提供的硬件加速解决方案,专门啃数据压缩/解压这块“硬骨头”。它最核心的优势有两个:

  硬件卸载:把压缩/解压这俩“重活”甩给专用硬件,不占用宝贵的CPU资源;

  无缝兼容:兼容业界标准的zlib、zstd以及lz4接口提供服务,现有业务无需修改代码就能直接用,极大降低门槛。

  性能升级:三大黑科技解锁极致效能

  为满足高并发、低延迟的极致性能场景需求,鲲鹏KAE解压缩模块在成熟同步模式的基础上,进一步增加了zlib及lz4算法对异步调用模式的支持。这套异步方案旨在进一步挖掘硬件潜能,实现更高的系统效能。

  异步调用,释放CPU潜能:在I/O密集型场景(如存储业务)中,上层应用采用异步调用能更高效地实现任务并行化。例如,当一个分布式存储节点接收客户端数据时,可立即异步发起压缩请求,并迅速返回处理下一个客户端的网络I/O连接,压缩任务则交由KAE硬件并行执行。得益于KAE的异步模式,应用在发起压缩或解压请求后无需等待操作完成,而是在适当时机轮询结果。这种“下发—返回—轮询”的机制,使CPU在硬件处理数据期间完全释放,转而执行其他计算任务,从而显著降低CPU占用,提升系统吞吐量并减少处理延迟。

  SGL支持,应对复杂数据结构:为高效处理在内存中非连续存放的散列数据,KAE异步方案新增了对SGL(Scatter-Gather List)数据格式的支持。该功能允许单次压缩请求的输入数据或输出缓冲区,由多个分散的内存片段组成;硬件加速器能够根据SGL描述信息,自动地、高效地收集分散的数据进行压缩,或将解压结果分散写入到多个指定位置。这省去了业务层为满足硬件接口而进行的数据拼接与拷贝开销,显著提升了处理复杂数据结构的效率与灵活性。

  零拷贝技术,消除内存瓶颈:为进一步减少数据路径上的开销,KAE异步方案针对物理内存管理进行了深度优化,实现了零拷贝功能。该技术能够在SGL中的单个SGE(Scatter-Gather Element)为连续物理内存时,通过地址映射使硬件加速器直接读写对应的用户态内存区域。这意味着,对于符合物理连续性的SGE,可启用零拷贝优化,省去该数据段的拷贝开销。这不仅精准降低了CPU占用,也减少了内存访问延迟,为提升整体性能贡献了关键一环。

  上述异步调用模式实现了业务处理与硬件压缩的高效并行,下图以zlib算法为例清晰地展示了完整的业务调用流。

  性能测试:数据说话,优势凸显

  为进一步直观展现其性能优势,我们直接对比了鲲鹏KAE异步加速方案与开源算法(标准zlib和lz4库)在典型工作负载下的表现。性能对比原则为同等CPU资源消耗下,鲲鹏920新型号处理器的 KAE 设备所能达到的最大吞吐带宽 vs 开源算法的吞吐带宽。下图展示了在相同测试环境下的详细对比结果。

  zlib算法(deflate格式):得益于压缩与解压的全链路硬件卸载,鲲鹏KAE 在保持同等 CPU 负载的同时,压缩与解压吞吐带宽提升数十倍。

  lz4场景:在压缩路径部分卸载的情况下,鲲鹏KAE 依然实现了更高的压缩吞吐带宽,平均性能提升87%,且压缩率与开源算法基本持平。

  赋能场景:异步压缩在何处发挥关键价值

  【分布式存储】:在存储业务中,数据写入前需实时压缩以节省空间与带宽。同步压缩易成为性能瓶颈。采用KAE异步压缩后,存储节点能并行处理大量压缩任务,结合SGL高效处理数据块,使得数据写入吞吐量提升的同时,CPU占用大幅下降,保障了数据写入的实时性与稳定性。

  【Web服务】:在Nginx等Web服务器中,启用静态资源(如JS、CSS文件)的实时压缩可节省传输流量,但在高并发场景下,数据压缩操作会占用大量的CPU资源,成为主要的性能瓶颈。 通过KAE异步压缩,Web服务器CPU得以解放,单节点可支撑的并发连接数显著增加,同时保障了资源的快速加载与低延迟传输。

  【数据库与日志系统】:在数据库(如 ClickHouse)及日志处理系统中,数据写入时通常需对数据页、WAL 日志或索引段进行实时压缩,以降低存储成本与 I/O 压力,通过 KAE 异步压缩,系统在提交写入请求后可立即返回,主线程得以持续处理新请求,使系统在高负载下仍能保持低延迟与高稳定性。

  快速上手,体验KAE异步模式

  KAE异步解压缩模块现已正式开源,相关源代码、接口文档与详细使用指南已在Gitcode社区全面开放。开发者可访问项目仓库,查阅README中的完整介绍,快速了解如何基于鲲鹏硬件部署与调用异步压缩能力。

特别提醒:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
0
相关文章