跳至主要内容
跳至主要内容
编辑此页

基于性能分析的优化

基于性能分析的优化 (PGO) 是一种编译器优化技术,它根据程序的运行时性能分析结果来进行优化。

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

关于 ClickHouse 中 PGO 的更多信息,请阅读相应的 GitHub issue

如何使用 PGO 构建 ClickHouse?

PGO 主要有两种类型:插桩 (Instrumentation)采样 (Sampling)(也称为 AutoFDO)。本指南描述了 ClickHouse 中使用插桩 PGO 的方法。

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

有关如何应用 PGO 的更详细指南,请参阅 Clang 文档

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

    © . This site is unofficial and not affiliated with ClickHouse, Inc.