英特尔®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%。
重要本文中提供的测试数据仅为理论值(参考值),实际数据以您的操作环境为准。
关于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。
测试步骤
登录测试节点,执行以下指令,确认处理器已集成DSA硬件。
ls /sys/bus/dsa
预期输出无报错且目录非空,表明处理器已集成DSA硬件。
部署测试应用,并为其开启内存就近访问加速功能。
推荐使用内存密集型应用Redis。
关于创建Redis应用的具体操作,请参见创建部署Redis应用。
关于开启内存就近访问加速功能的具体操作,请参见通过Policy开启内存就近加速访问功能。
测试结论
对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消耗。