PostgreSQLのバージョン:

max_parallel_workers_per_gather

一つのGatherまたはGather Mergeノードに対して起動できるワーカー数の最大値を設定します。パラレルワーカーは、max_parallel_workersで上限が決まるmax_worker_processesで確立されたプロセスのプールから取得されます。実行時には、要求された数のワーカーは取得できないかもしれないことに注意してください。そうなると、実行プランは期待していたよりも少ない数のワーカーで実行されることになり、効率は悪化するかもしれません。デフォルト値は2です。この設定値を0にすると、パラレルクエリの実行は行われません。

パラレルクエリの実行により、パラレルクエリではない場合に比べて非常に多くのリソースが使用されるかもしれないことに注意してください。これは、個々のワーカープロセスは完全に別個のプロセスであり、システムに対してユーザセッションが追加されたのと大体同じくらいの影響があるからです。この設定値を選択する際には、他のリソースの消費量を制御する他の設定値、たとえばwork_memを設定するときと同様に、この点を考慮しておく必要があります。work_memのような設定値によるリソース制限は、個々のワーカーに対して個別に適用されます。つまり、ひとつのプロセス対するよりも、すべてのプロセスの全体のリソース消費はずっと多いかもしれないということです。たとえば、あるパラレルクエリが4つのワーカーを使っているとすると、ワーカーを使わない場合に比べて、最大5倍のCPU時間、メモリ、I/Oバンド幅、その他を使うかもしれません。

パラレルクエリに関する更なる情報については、parallel-queryをご覧ください。

推奨事項 [EN]

Increase if you plan to use parallel query to 4 or 8, depending on cores/concurrent sessions.

件のコメント