文档

使用硬件DSA进行数据流加速

更新时间:

英特尔®DSA(Data Streaming Accelerator)数据流加速器是一种高性能的数据拷贝和数据转换加速器,已集成在八代神龙SPR机型的处理器中。ack-koordinator对已集成DSA硬件的节点,将自动开启DSA加速功能,用于优化DRAM、持久内存和各种数据处理进程中常见的数据流拷贝和转换。本文介绍如何使用硬件DSA进行数据流加速。

索引

前提条件

  • 已创建ACK Pro集群,且集群版本为1.18及以上版本。具体操作,请参见创建Kubernetes托管版集群

  • 已通过kubectl连接Kubernetes集群。具体操作,请参见获取集群KubeConfig并通过kubectl工具连接集群

  • 已安装ack-koordinator组件(原ack-slo-manager),且组件版本为v1.2.0-ack1.2及以上版本。关于安装ack-koordinator组件的具体操作,请参见ack-koordinator(ack-slo-manager)

    说明

    ack-koordinator适配了原resource-controller组件的所有功能。如果您正在使用resource-controller,请您先卸载resource-controller,再安装ack-koordinator。关于卸载组件的具体操作,请参见卸载resource-controller

  • 已确保多NUMA机型为神龙裸金属ecs.ebmc、ecs.ebmg、ecs.ebmgn、ecs.ebmr、ecs.ebmhfc、ecs.scc等五、 六、七、八代机型。

    说明

    内存就近访问加速功能尤其对ecs.ebmc8i.48xlarge、ecs.c8i.32xlarge、ecs.g8i.48xlarge的八代机型提供更好的支持。关于ECS实例规格族,请参见ECS实例规格

费用说明

ack-koordinator组件本身的安装和使用是免费的,不过需要注意的是,在以下场景中可能产生额外的费用:

  • ack-koordinator是非托管组件,安装后将占用Worker节点资源。您可以在安装组件时配置各模块的资源申请量。

  • ack-koordinator默认会将资源画像、精细化调度等功能的监控指标以Prometheus的格式对外透出。若您配置组件时开启了ACK-Koordinator开启Prometheus监控指标选项并使用了阿里云Prometheus服务,这些指标将被视为自定义指标并产生相应费用。具体费用取决于您的集群规模和应用数量等因素。建议您在启用此功能前,仔细阅读阿里云Prometheus计费说明,了解自定义指标的免费额度和收费策略。您可以通过账单和用量查询,监控和管理您的资源使用情况。

DSA加速功能的优势

八代Intel机型处理器集成了英特尔®DSA硬件,并基于Alinux 3增加了相关驱动。在此机型中安装ack-koordinator组件,容器化自适应开启DSA加速功能,将相关内存操作从CPU卸载至DSA硬件,实现数据拷贝和转换的加速,并有效缓解过程中的CPU抖动。DSA加速功能更多优势如下。

  • 提升节点上数据密集型工作负载的数据处理效能,优化OS内核中内存均衡、规整等的内存操作,提升整机内存的性能。

  • 对于ack-koordinator的内存就近访问加速功能,DSA可以明显提升单次处理的速度,有效降低CPU核时。远端内存使用量越大,加速效果越明显,十万级到百万级内存页有30%~200%的速度提升和CPU节省。迁移约1.7 GB应用内存至本地,与无DSA硬件相比,迁移耗时降低至31.25%,带宽提升至320.00%。

    重要

    本文中提供的测试数据仅为理论值(参考值),实际数据以您的操作环境为准。

    image

关于DSA更多信息,请参见Intel官方文档

使用DSA加速功能

ack-koordinator组件对已集成DSA硬件的节点,将自动开启DSA加速功能,您只需在集群中部署该组件即可使用DSA加速功能,无需额外配置。关于ack-koordinator的内存就近访问加速功能,请参见多NUMA机型的容器内存就近访问加速

验证DSA加速功能

内存就近访问加速功能以数据安全的方式将绑核应用远端NUMA上的内存迁移至本地,提高本地访存命中率,为内存密集型的工作负载提供更好的访存性能。

测试环境

DSA加速功能测试需要多NUMA架构机型,例如ecs.ebmc8i.48xlarge、ecs.c8i.32xlarge、ecs.g8i.48xlarge等。本文选用测试机型为ecs.ebmc8i.48xlarge。

测试步骤

  1. 登录测试节点,执行以下指令,确认处理器已集成DSA硬件。

    ls /sys/bus/dsa

    预期输出无报错且目录非空,表明处理器已集成DSA硬件。

  2. 部署测试应用,并为其开启内存就近访问加速功能。

    推荐使用内存密集型应用Redis。

测试结论

对26.12 GB Redis远端内存进行就近访问加速所需的迁移时间,与CPU消耗(百万级内存页数)对比如下表所示。

测试场景

迁移时间(s)

CPU使用率

核时(s)

关闭DSA加速功能

9.649

1.000

9.649

开启DSA加速功能

4.928

0.668

3.292

结果说明:在DSA加速功能触发的内存迁移中,实际耗时降低至51.8%,平均CPU消耗降低至66.8%,所需核时降低至34.1%。DSA可以提升内存迁移的速度,并降低CPU消耗。