Testing and tuning commands
===========================

EDB Postgres
Distributedには、PGDクラスターのテストと調整に役立つツールが含まれています。バックグラウンドについては、
:ref:`Testing and tuning commands <Testing and tuning commands>`  を参照してください。

pgd_bench
---------

概要
^^^^

EDB Postgres分散展開のベンチマークツール。

.. code:: shell

   pgd_bench [OPTION]... [DBNAME] [DBNAME2]

``DBNAME``
は、次のフォーマットのconninfo文字列です。\ ``"host=10.1.1.2 user=postgres dbname=master"``

pgd_benchのオプションと使用例については、
:ref:`pgd_bench in Testing and tuning <Testing and tuning PGD clusters>` を参照してください。

オプション
^^^^^^^^^^

pgd_benchコマンドは、
pgbenchコマンドのラッパーとして実装されています。これは、同じオプションの多くを共有し、テストを実行するときに\ ``pgbench``
という名前のテーブルを作成したことを意味します。

pgd_benchに固有のオプションには次のものが含まれます。

設定モード
^^^^^^^^^^

``-m`` または\ ``--mode``

モードは\ ``regular`` 、\ ``camo`` 、または\ ``failover``
に設定できます。デフォルトは\ ``regular`` です。

- ``regular`` — pgd_benchを実行するために必要なノードは1つだけです。

- ``camo`` —
  CAMOパートナーとして機能するように2番目のノードを指定する必要があります。
  CAMOの設定が必要です。

- ``failover``
  —フェールオーバーとして機能するように2番目のノードを指定する必要があります。

``-m failover`` を使用する場合、追加オプション\ ``--retry``
を使用できます。このオプションは、フェイルオーバーが発生した場合にトランザクションを再試行するようにpgd_benchに指示します。
``-m camo`` を使用する場合、 ``--retry``
オプションは自動的に有効になります。

GUC変数の設定
^^^^^^^^^^^^^

``-o`` または\ ``--set-option`` このオプションの後には、 ``NAME=VALUE``
エントリが続きます。これらは、
pgd_benchが接続する各サーバー、およびそれらのサーバーにのみPostgres
`SET <https://www.postgresql.org/docs/current/sql-set.html>`_ コマンドを使用して適用されます。

他のオプションはPostgres pgbenchコマンドと同じです。詳細については、
PostgreSQL :ref:`pgbench <Monitoring through SQL>` ドキュメントを参照してください。

オプションpgd_benchおよびpgbenchの完全なリストが以下にあります。

初期化オプション
^^^^^^^^^^^^^^^^

- ``-i, --initialize`` —初期化モードを呼び出します。

- ``-I, --init-steps=[dtgGvpf]+`` (デフォルト\ ``"dtgvp"`` )
  —選択した初期化ステップを実行します。

  - ``d`` —既存のpgbench tables.
  - ``t`` —
    を削除します。標準のpgbenchシナリオで使用されるテーブルを作成します。
  - ``g``
    —クライアントサイドでデータを生成し、標準テーブルにロードし、既に存在するデータを置き換えます。
  - ``G``
    —サーバーサイドでデータを生成し、標準テーブルにロードし、既に存在するデータを置き換えます。
  - ``v`` —標準テーブルで\ ``VACUUM`` を呼び出します。
  - ``p`` —標準のテーブルに主キーインデックスを作成します。
  - ``f`` —標準テーブル間に外部キー制約を作成します。

- ``-F, --fillfactor=NUM`` —フィルファクターを設定します。

- ``-n, --no-vacuum`` —初期化中に\ ``VACUUM`` を実行しないでください。

- ``-q, --quiet`` —クワイエットロギング 5秒ごとに1メッセージ。

- ``-s, --scale=NUM`` —スケーリング係数。

- ``--foreign-keys`` —テーブル間に外部キーコンストレインを作成します。

- ``--index-tablespace=TABLESPACE``
  —指定されたテーブルスペースにインデックスを作成します。

- ``--partition-method=(range|hash)``
  —このメソッドで\ ``pgbench_accounts``
  をパーティション化します。デフォルトは\ ``range`` です。

- ``--partitions=NUM`` — ``pgbench_accounts`` を\ ``NUM``
  パーツにパーティション化します。デフォルトは\ ``0`` です。

- ``--tablespace=TABLESPACE``
  —指定されたテーブルスペースにテーブルを作成します。

- ``--unlogged-tables``
  —ログを取らないテーブルとしてテーブルを作成します。注ログに記録されていないテーブルはレプリケートされません。

実行するものを選択するオプション
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- ``-b, --builtin=NAME[@W]`` —
  Wで重み付けされたビルトインスクリプトNAMEを追加します。デフォルトは1です。
  ``-b list`` を使用して、使用可能なスクリプトをリストします。

- ``-f, --file=FILENAME[@W]`` — Wで重み付けスクリプト\ ``FILENAME``
  を追加します。デフォルトは1です。

- ``-N, --skip-some-updates`` —
  pgbench_tellersおよびpgbench_branchesの更新。 ``-b simple-update``
  と同じ。

- ``-S, --select-only`` — SELECTのみのトランザクションを実行します。
  ``-b select-only`` と同じ。

ベンチマークオプション
^^^^^^^^^^^^^^^^^^^^^^

- ``-c, --client=NUM``
  —同時データベースクライアントの数。デフォルトは1です。

- ``-C, --connect`` —トランザクションごとに新しい接続を確立します。

- ``-D, --define=VARNAME=VALUE``
  —カスタムスクリプトで使用する変数を定義します。

- ``-j, --jobs=NUM`` —スレッド数。デフォルトは1です。

- ``-l, --log`` —トランザクション時間をログファイルに書き込みます。

- ``-L, --latency-limit=NUM`` —
  NUMミリ秒を超えて続いたトランザクションを遅いものとしてカウントします。

- ``-m, --mode=regular|camo|failover`` —
  pgbenchを実行するモード。デフォルトは\ ``regular`` です。

- ``-M, --protocol=simple|extended|prepared``
  —クエリーを送信するためのプロトコル。デフォルトは\ ``simple`` です。

- ``-n, --no-vacuum`` —テストの前に\ ``VACUUM`` を実行しないでください。

- ``-o, --set-option=NAME=VALUE`` —ランタイム\ ``SET``
  オプションを指定します。

- ``-P, --progress=NUM`` —
  NUM秒ごとにスレッドの進行状況レポートを表示します。

- ``-r, --report-per-command``
  —コマンドごとのレイテンシー、失敗、および再試行。

- ``-R, --rate=NUM`` — 1秒ごとのトランザクションのターゲットレート。

- ``-s, --scale=NUM`` —このスケール係数を出力で報告します。

- ``-t, --transactions=NUM``
  —各クライアントが実行するトランザクションの数。デフォルトは10です。

- ``-T, --time=NUM`` —ベンチマークテストの時間秒単位。

- ``-v, --vacuum-all``
  —テストの前に4つの標準テーブルをすべてバキュームします。

- ``--aggregate-interval=NUM`` — NUM秒以上のデータ。

- ``--failures-detailed``
  —基本的なタイプごとにグループ化された障害を報告します。

- ``--log-prefix=PREFIX``
  —トランザクション時間ログファイルの接頭辞。デフォルトは\ ``pgbench_log``
  です。

- ``--max-tries=NUM``
  —トランザクションを実行しようとする最大回数。デフォルトは\ ``1``
  です。

- ``--progress-timestamp``
  —進行状況にはUnixエポックタイムスタンプを使用します。

- ``--random-seed=SEED`` —ランダムシード ``time`` 、\ ``rand``
  、\ ``integer`` を設定します。

- ``--retry`` —フェールオーバー時にトランザクションを再試行します。
  ``-m`` とともに使用されます。

- ``--sampling-rate=NUM``
  —ログに記録するトランザクションの割合、たとえば、1%の場合0.01。

- ``--show-script=NAME``
  —ビルトインスクリプトコードを表示して、終了します。

- ``--verbose-errors`` —すべてのエラーのメッセージを出力します。

共通オプション
^^^^^^^^^^^^^^

- ``-d, --debug`` —デバッグ出力を印刷します。

- ``-h, --host=HOSTNAME``
  —データベースサーバホストまたはソケットディレクトリ。

- ``-p, --port=PORT`` —データベースサーバーのポート番号。

- ``-U, --username=USERNAME``
  —指定されたデータベースユーザーとして接続します。

- ``-V, --version`` —バージョン情報を出力して終了します。

- ``-?, --help`` —ヘルプを表示して、終了します。
