使用 Intel QuickAssist 加速 MariaBackup

借助 Intel QuickAssist Technology,您可以将 MariaBackup 压缩性能提升 5 倍,同时降低 CPU 使用率。今天我将向您展示如何实现。

什么是 Intel QuickAssist?

近十年前,Intel 发布了一项名为 QuickAssist 的技术,最初以 PCI-e 卡的形式出现,后来从 Skylake 代开始集成到许多 Xeon 处理器中。QuickAssist Technology(通常称为 QAT)是一个特殊的单元,CPU 可以将压缩和加密任务卸载到其上。

我很幸运在这项新技术刚推出时就提前接触到它。那时,我正在协助 Intel 将这项技术移植到 NGINX 上。这项技术当时具有非常令人印象深刻的能力,因此今天很高兴看到它应用于 MariaDB 环境。

MariaBackup 与压缩

MariaBackup 的一个典型用例是流式输出并通过压缩工具进行管道传输。这在后期的 MariaDB 版本中尤其如此,因为 --compress 选项已被弃用。因此,例如,您可以执行

mariabackup --backup --stream=xbstream --nolock | gzip > dbbackup.gz

由于此用例,您无需重新编译或进行任何更改即可将 MariaBackup 与 QAT 一起使用。有一个名为“qzip”的工具,其压缩方式与 gzip 相同,但卸载到 QuickAssist 加速器上。此工具在某些 Linux 发行版中也可用,特别是基于 Red Hat 的发行版,通常包名称为“qatzip”。

Intel 发布了一个演示文稿,展示了在使用 qzip 代替并行 gzip (pigz) 进行 6 级压缩时,性能可以提高超过 5 倍。此外,由于工作从 CPU 卸载,它显著降低了 CPU 利用率。这带来的额外好处是对当前正在运行的数据库事务的性能影响非常小。

欲了解更多详情,Intel 提供了一组幻灯片,展示了他们的测试过程和结果,您可以在下面阅读。

发布者 Andrew Hutchings

MariaDB Foundation 首席贡献官