ClickHouse/docs/ja/operations/optimizing-performance/profile-guided-optimization.md
2024-11-18 11:58:58 +09:00

2.6 KiB
Raw Permalink Blame History

sidebar_position sidebar_label
54 プロファイルガイド最適化 (PGO)

import SelfManaged from '@site/docs/ja/_snippets/_self_managed_only_no_roadmap.md';

プロファイルガイド最適化

プロファイルガイド最適化PGOは、プログラムの実行時プロファイルに基づいて最適化を行うコンパイラの最適化技術です。

テストによれば、PGOはClickHouseのパフォーマンス向上に役立ちます。テストによると、ClickBenchテストスイートでQPSが最大15%向上します。より詳細な結果はこちらにあります。パフォーマンスの利点は、通常のワークロードに依存しますので、結果は良くも悪くもなります。

ClickHouseにおけるPGOの詳細については、関連するGitHubの課題をご覧ください。

PGOを使用してClickHouseをビルドするには

PGOには主に2つの種類がありますインストルメンテーションサンプリングAutoFDOとも呼ばれます。このガイドでは、ClickHouseにおけるインストルメンテーションPGOについて説明します。

  1. インストルメントモードでClickHouseをビルドします。Clangでは、CXXFLAGS-fprofile-generateオプションを渡すことで実行できます。
  2. サンプルワークロードでインストルメントされたClickHouseを実行します。ここでは、通常のワークロードを使用する必要があります。アプローチの一つとして、サンプルワークロードとしてClickBenchを使用することが考えられます。インストルメンテーションモードのClickHouseは動作が遅いかもしれないので、それに備えて、パフォーマンスが重要な環境では実行しないでください。
  3. 前のステップで収集したプロファイルを使用して、-fprofile-useコンパイラフラグを用いて再度ClickHouseをコンパイルします。

PGOの適用方法についての詳細なガイドは、Clangのドキュメントにあります。

生産環境から直接サンプルワークロードを収集する場合は、サンプリングPGOの使用を試みることをお勧めします。