配置文件引导优化
配置文件引导优化 (PGO) 是一种编译器优化技术,其中程序根据运行时配置文件进行优化。
根据测试结果,PGO 有助于 ClickHouse 提高性能。根据测试结果,我们在 ClickBench 测试套件上看到 QPS 提高了 15%。更详细的结果可在此处获取 这里。性能优势取决于您的典型工作负载 - 您可能会得到更好的或更差的结果。
您可以在相应的 GitHub 中阅读有关 ClickHouse 中 PGO 的更多信息 问题.
如何使用 PGO 构建 ClickHouse?
PGO 主要有两种类型:检测 和 采样(也称为 AutoFDO)。本指南介绍了使用 ClickHouse 的检测 PGO。
- 以检测模式构建 ClickHouse。在 Clang 中,可以通过将
-fprofile-generate
选项传递给CXXFLAGS
来实现。 - 在示例工作负载上运行检测后的 ClickHouse。您需要使用您通常的工作负载。其中一种方法可能是使用 ClickBench 作为示例工作负载。检测模式下的 ClickHouse 运行速度可能会很慢,因此请做好准备,不要在性能关键型环境中运行检测后的 ClickHouse。
- 使用
-fprofile-use
编译器标志和从上一步收集的配置文件重新编译 ClickHouse。
Clang 文档中提供了有关如何应用 PGO 的更详细指南 文档.
如果您要直接从生产环境中收集示例工作负载,我们建议尝试使用采样 PGO。