跳至主要内容

配置文件引导优化

配置文件引导优化 (PGO) 是一种编译器优化技术,其中程序根据运行时配置文件进行优化。

根据测试结果,PGO 有助于 ClickHouse 提高性能。根据测试结果,我们在 ClickBench 测试套件上看到 QPS 提高了 15%。更详细的结果可在此处获取 这里。性能优势取决于您的典型工作负载 - 您可能会得到更好的或更差的结果。

您可以在相应的 GitHub 中阅读有关 ClickHouse 中 PGO 的更多信息 问题.

如何使用 PGO 构建 ClickHouse?

PGO 主要有两种类型:检测采样(也称为 AutoFDO)。本指南介绍了使用 ClickHouse 的检测 PGO。

  1. 以检测模式构建 ClickHouse。在 Clang 中,可以通过将 -fprofile-generate 选项传递给 CXXFLAGS 来实现。
  2. 在示例工作负载上运行检测后的 ClickHouse。您需要使用您通常的工作负载。其中一种方法可能是使用 ClickBench 作为示例工作负载。检测模式下的 ClickHouse 运行速度可能会很慢,因此请做好准备,不要在性能关键型环境中运行检测后的 ClickHouse。
  3. 使用 -fprofile-use 编译器标志和从上一步收集的配置文件重新编译 ClickHouse。

Clang 文档中提供了有关如何应用 PGO 的更详细指南 文档.

如果您要直接从生产环境中收集示例工作负载,我们建议尝试使用采样 PGO。