PDコンフィグレーションファイル
PD設定ファイルは、コマンドラインパラメータよりも多くのオプションをサポートしています。デフォルトの設定ファイルはここあります。
このドキュメントでは、コマンドラインパラメータに含まれないパラメータについてのみ説明します。コマンドラインパラメータについては、 ここ参照してください。
ヒント:
構成項目の値を調整する必要がある場合は、 設定を変更するを参照してください。
name
- PDノードの一意の名前
- デフォルト値:
"pd"
- 複数の PD ノードを開始するには、各ノードに一意の名前を使用します。
data-dir
- PDがデータを保存するディレクトリ
- デフォルト値:
default.${name}"
client-urls
- PDがリッスンするクライアントURLのリスト
- デフォルト値:
"http://127.0.0.1:2379"
- クラスターをデプロイする際は、現在のホストのIPアドレスを
client-urls
(例:"http://192.168.100.113:2379"
)に指定する必要があります。クラスターをDocker上で実行する場合は、DockerのIPアドレスを"http://0.0.0.0:2379"
に指定してください。
advertise-client-urls
- クライアントがPDにアクセスするためのアドバタイズURLのリスト
- デフォルト値:
"${client-urls}"
- Docker または NAT ネットワーク環境などの状況では、クライアントが PD がリッスンするデフォルトのクライアント URL を通じて PD にアクセスできない場合は、アドバタイズ クライアント URL を手動で設定する必要があります。
- 例えば、Dockerの内部IPアドレスは
172.17.0.1
、ホストのIPアドレスは192.168.100.113
、ポートマッピングは-p 2380:2380
に設定されています。この場合、advertise-client-urls
を"http://192.168.100.113:2380"
に設定できます。クライアントは"http://192.168.100.113:2380"
を通じてこのサービスを見つけられます。
peer-urls
- PDノードがリッスンするピアURLのリスト
- デフォルト値:
"http://127.0.0.1:2380"
- クラスターをデプロイする際は、現在のホストのIPアドレスを
peer-urls
(例:"http://192.168.100.113:2380"
に指定する必要があります。クラスターがDocker上で実行される場合は、DockerのIPアドレスを"http://0.0.0.0:2380"
に指定してください。
advertise-peer-urls
- 他のPDノード(ピア)がPDノードにアクセスするためのアドバタイズURLのリスト
- デフォルト:
"${peer-urls}"
- Docker または NAT ネットワーク環境などの状況では、他のノード (ピア) がこの PD ノードによってリッスンされるデフォルトのピア URL を介して PD ノードにアクセスできない場合は、アドバタイズ ピア URL を手動で設定する必要があります。
- 例えば、Dockerの内部IPアドレスが
172.17.0.1
で、ホストのIPアドレスが192.168.100.113
、ポートマッピングが-p 2380:2380
に設定されている場合、advertise-peer-urls
を"http://192.168.100.113:2380"
に設定できます。他のPDノードは"http://192.168.100.113:2380"
を介してこのサービスを検出できます。
initial-cluster
ブートストラップのための初期クラスタ構成
デフォルト値:
"{name}=http://{advertise-peer-url}"
たとえば、
name
が「pd」、advertise-peer-urls
が"http://192.168.100.113:2380"
の場合、initial-cluster
は"pd=http://192.168.100.113:2380"
なります。3 つの PD サーバーを起動する必要がある場合、
initial-cluster
は次のようになります。pd1=http://192.168.100.113:2380, pd2=http://192.168.100.114:2380, pd3=192.168.100.115:2380
initial-cluster-state
- クラスターの初期状態
- デフォルト値:
"new"
initial-cluster-token
- ブートストラップフェーズ中に異なるクラスターを識別する
- デフォルト値:
"pd-cluster"
- 同じ構成のノードを持つ複数のクラスターが連続してデプロイされる場合は、異なるクラスター ノードを分離するために異なるトークンを指定する必要があります。
lease
- PDLeaderキーリースのタイムアウト。タイムアウト後、システムはLeaderを再選出します。
- デフォルト値:
3
- 単位:秒
quota-backend-bytes
- メタ情報データベースのstorageサイズ(デフォルトでは8GiB)
- デフォルト値:
8589934592
auto-compaction-mod
- メタ情報データベースの自動圧縮モード
- 使用可能なオプション:
periodic
(サイクル別) およびrevision
(バージョン番号別)。 - デフォルト値:
periodic
auto-compaction-retention
auto-compaction-retention
がperiodic
場合、メタ情報データベースの自動圧縮間隔。圧縮モードがrevision
に設定されている場合、このパラメータは自動圧縮のバージョン番号を示します。- デフォルト値: 1時間
tick-interval
- etcdの設定項目
heartbeat-interval
に相当します。異なるPDノードに埋め込まれたetcdインスタンス間のRaftハートビート間隔を制御します。値を小さくすると障害検出が高速化されますが、ネットワーク負荷が増加します。 - デフォルト値:
500ms
election-interval
- etcdの
election-timeout
設定項目に相当します。PDノードに組み込まれたetcdインスタンスの選出タイムアウトを制御します。etcdインスタンスがこの期間内に他のetcdインスタンスから有効なハートビートを受信しない場合、 Raft選出を開始します。 - デフォルト値:
3000ms
- この値は
tick-interval
5倍以上でなければなりません。例えば、tick-interval
が500ms
場合、election-interval
2500ms
以上でなければなりません。
enable-prevote
- etcdの
pre-vote
設定項目に相当します。PDノードに組み込まれたetcdがRaft事前投票を有効にするかどうかを制御します。有効にすると、etcdは追加の選挙フェーズを実行し、選挙に勝つのに十分な票数を得られるかどうかを確認します。これにより、サービスの中断を最小限に抑えることができます。 - デフォルト値:
true
force-new-cluster
- PDを強制的に新しいクラスタとして起動し、 Raftメンバーの数を
1
に変更するかどうかを決定します。 - デフォルト値:
false
tso-update-physical-interval
- PD が TSO の物理時間を更新する間隔。
- TSO物理時間のデフォルトの更新間隔では、PDは最大262144個のTSOを提供します。より多くのTSOを取得するには、この設定項目の値を減らしてください。最小値は
1ms
です。 - この設定項目を減らすと、PDのCPU使用率が増加する可能性があります。テストによると、間隔が
50ms
の場合と比較して、間隔が1ms
の場合、PDのCPU CPU使用率で約10%増加します。 - デフォルト値:
50ms
- 最小値:
1ms
pdサーバー
pd-server関連のコンフィグレーション項目
server-memory-limit
v6.6.0 の新機能
- PDインスタンスのメモリ制限比率。値
0
メモリ制限がないことを意味します。 - デフォルト値:
0
- 最小値:
0
- 最大値:
0.99
server-memory-limit-gc-trigger
v6.6.0の新機能
- PDがGCをトリガーしようとする閾値比率。PDのメモリ使用量が
server-memory-limit
×server-memory-limit-gc-trigger
の値に達すると、PDはGolang GCをトリガーします。1分間にトリガーされるGCは1回のみです。 - デフォルト値:
0.7
- 最小値:
0.5
- 最大値:
0.99
enable-gogc-tuner
v6.6.0 の新機能
- GOGC チューナーを有効にするかどうかを制御します。
- デフォルト値:
false
gc-tuner-threshold
6.6.0の新機能
- GOGCチューナーのチューニングにおける最大メモリしきい値比。メモリがこのしきい値
server-memory-limit
×gc-tuner-threshold
)を超えると、GOGCチューナーは動作を停止します。 - デフォルト値:
0.6
- 最小値:
0
- 最大値:
0.9
flow-round-by-digit
TiDB 5.1 の新機能
- デフォルト値: 3
- PDはフロー番号の最下位桁を丸めることで、リージョンフロー情報の変更に伴う統計情報の更新を削減します。この設定項目は、リージョンフロー情報の最小桁数を指定します。例えば、フロー
100512
デフォルト値が3
であるため、101000
に丸められます。この設定により、trace-region-flow
置き換えられます。
注記:
クラスターをTiDB 4.0バージョンから現在のバージョンにアップグレードした場合、アップグレード後の
flow-round-by-digit
の動作とアップグレード前のtrace-region-flow
の動作はデフォルトで一致します。つまり、アップグレード前のtrace-region-flow
の値がfalseの場合、アップグレード後のflow-round-by-digit
の値は127になります。アップグレード前のtrace-region-flow
の値がtrue
の場合、アップグレード後のflow-round-by-digit
の値は3
なります。
min-resolved-ts-persistence-interval
バージョン6.0.0の新機能
- PDに最小解決タイムスタンプが保持される間隔を決定します。この値が
0
に設定されている場合、保持は無効になります。 - デフォルト値: v6.3.0 より前のバージョンでは、デフォルト値は
"0s"
です。v6.3.0 以降では、デフォルト値は"1s"
(最小の正の値)です。 - 最小値:
0
- 単位:秒
注記:
v6.0.0~v6.2.0からアップグレードされたクラスターの場合、デフォルト値の
min-resolved-ts-persistence-interval
アップグレード後も変更されず、"0s"
ままとなります。この機能を有効にするには、この設定項目の値を手動で変更する必要があります。
安全
セキュリティ関連のコンフィグレーション項目
cacert-path
- CAファイルのパス
- デフォルト値: ""
cert-path
- X509証明書を含むPrivacy Enhanced Mail(PEM)ファイルのパス
- デフォルト値: ""
key-path
- X509キーを含むPEMファイルのパス
- デフォルト値: ""
redact-info-log
バージョン5.0の新機能
- PDログでログ編集を有効にするかどうかを制御します
- 構成値を
true
に設定すると、PD ログでユーザー データが編集されます。 - デフォルト値:
false
log
ログ関連のコンフィグレーション項目
level
- 出力ログのレベルを指定します
"warn"
"fatal"
"error"
"debug"
"info"
- デフォルト値:
"info"
format
- ログ形式
- オプション
"json"
:"text"
- デフォルト値:
"text"
disable-timestamp
- ログ内の自動生成されたタイムスタンプを無効にするかどうか
- デフォルト値:
false
log.file
ログファイルに関連するコンフィグレーション項目
max-size
- 1つのログファイルの最大サイズ。この値を超えると、システムは自動的にログを複数のファイルに分割します。
- デフォルト値:
300
- 単位: MiB
- 最小値:
1
max-days
- ログが保存される最大日数
- 構成項目が設定されていない場合、またはその値がデフォルト値 0 に設定されている場合、PD はログ ファイルを消去しません。
- デフォルト値:
0
max-backups
- 保存するログファイルの最大数
- 構成項目が設定されていない場合、またはその値がデフォルト値 0 に設定されている場合、PD はすべてのログ ファイルを保持します。
- デフォルト値:
0
metric
監視に関連するコンフィグレーション項目
interval
- 監視メトリックデータがPrometheusにプッシュされる間隔
- デフォルト値:
15s
schedule
スケジュールに関連するコンフィグレーション項目
注記:
schedule
に関連するこれらの PD 構成項目を変更するには、クラスターのステータスに基づいて次のいずれかの方法を選択します。
- 新しくデプロイするクラスターの場合は、PD 構成ファイルを直接変更できます。
- 既存のクラスターの場合は、コマンドラインツールPD Controlを使用して変更を加えてください。設定ファイル内の
schedule
に関連するPD設定項目を直接変更しても、既存のクラスターには反映されません。
max-merge-region-size
- サイズ制限を
Region Merge
に制御します。リージョンサイズが指定された値より大きい場合、PD はリージョンを隣接する領域と結合しません。 - デフォルト値:
20
- 単位: MiB
max-merge-region-keys
Region Merge
キーの上限を指定します。リージョンキーが指定された値より大きい場合、PDはリージョンを隣接するリージョンと結合しません。- デフォルト値:
200000
patrol-region-interval
replicaChecker
リージョンのヘルス状態をチェックする実行頻度を制御します。この値が小さいほど、replicaChecker
実行速度が速くなります。通常、このパラメータを調整する必要はありません。- デフォルト値:
10ms
split-merge-interval
- 同じリージョンにおける
split
の操作とmerge
操作間の時間間隔を制御します。つまり、新しく分割されたリージョンはしばらくの間マージされません。 - デフォルト値:
1h
max-snapshot-count
- 1 つのストアが同時に受信または送信するスナップショットの最大数を制御します。PD スケジューラは、この構成に依存して、通常のトラフィックに使用されるリソースがプリエンプトされるのを防ぎます。
- デフォルト値:
64
max-pending-peer-count
- 単一ストア内の保留中のピアの最大数を制御します。PD スケジューラはこの構成に依存して、一部のノードで古いログを持つリージョンが過剰に生成されるのを防ぎます。
- デフォルト値:
64
max-store-down-time
- PDが切断されたストアを復旧不可能と判断するまでのダウンタイム。指定された時間内にストアからのハートビートを受信できない場合、PDは他のノードにレプリカを追加します。
- デフォルト値:
30m
max-store-preparing-time
バージョン6.1.0の新機能
- ストアがオンラインになるまでの最大待機時間を制御します。ストアがオンライン段階にある間、PDはストアのオンライン化の進行状況を照会できます。指定された時間を超えると、PDはストアがオンラインになったとみなし、再度ストアのオンライン化の進行状況を照会できなくなります。ただし、これによってリージョンが新しいオンラインストアに移行できなくなるわけではありません。ほとんどの場合、このパラメータを調整する必要はありません。
- デフォルト値:
48h
leader-schedule-limit
- 同時に実行されるLeaderスケジュールタスクの数
- デフォルト値:
4
region-schedule-limit
- 同時に実行されるリージョンスケジュールタスクの数
- デフォルト値:
2048
enable-diagnostic
バージョン6.3.0の新機能
- 診断機能を有効にするかどうかを制御します。有効にすると、PDは診断を支援するためにスケジューリング中の状態を記録します。有効にすると、スケジューリング速度に若干影響し、ストア数が多い場合にメモリ消費量が増加する可能性があります。
- デフォルト値: バージョン7.1.0以降、デフォルト値は
false
からtrue
に変更されます。クラスターをバージョン7.1.0より前のバージョンからバージョン7.1.0以降にアップグレードした場合、デフォルト値は変更されません。
hot-region-schedule-limit
- 同時に実行されているホットなリージョンスケジューリングタスクを制御します。リージョンスケジューリングとは独立しています。
- デフォルト値:
4
hot-region-cache-hits-threshold
- ホットリージョンを識別するために必要な分数を設定するために使用されるしきい値。PD は、リージョンがこの分数を超えてホットスポット状態になった後にのみ、ホットスポット スケジューリングに参加できます。
- デフォルト値:
3
replica-schedule-limit
- 同時に実行されるレプリカスケジュールタスクの数
- デフォルト値:
64
merge-schedule-limit
- 同時に実行される
Region Merge
スケジュールタスクの数Region Merge
を無効にするには、このパラメータを0
に設定します。 - デフォルト値:
8
high-space-ratio
- ストアの容量が十分であることを示す閾値比率。ストアのスペース占有率がこの閾値を下回る場合、PDはスケジューリング時にストアの残りのスペースを無視し、主にリージョンサイズに基づいて負荷分散を行います。この設定は、
region-score-formula-version
v1
に設定した場合のみ有効です。 - デフォルト値:
0.7
- 最小値:
0
より大きい - 最大値:
1
未満
low-space-ratio
- ストアの容量が不足する閾値比率。ストアのスペース占有率がこの閾値を超えると、PDはこのストアへのデータ移行を可能な限り回避します。同時に、該当ストアのディスク容量が枯渇することを避けるため、PDは主にストアの残容量に基づいてスケジューリングを行います。
- デフォルト値:
0.8
- 最小値:
0
より大きい - 最大値:
1
未満
tolerant-size-ratio
balance
バッファサイズを制御します- デフォルト値:
0
(バッファサイズを自動調整) - 最小値:
0
enable-cross-table-merge
- クロステーブル領域の結合を有効にするかどうかを決定します
- デフォルト値:
true
region-score-formula-version
v5.0 の新機能
- リージョンスコアの計算式のバージョンを制御します
- デフォルト値:
v2
- オプション値:
v1
およびv2
と比較して、v2 の変更はよりスムーズになり、スペースの再利用によって発生するスケジュールのジッターが改善されています。
注記:
クラスターをTiDB 4.0バージョンから最新バージョンにアップグレードした場合、アップグレード前後のPD動作の一貫性を確保するため、新しいFormulaバージョンはデフォルトで自動的に無効化されます。Formulaバージョンを変更する場合は、
pd-ctl
設定を手動で切り替える必要があります。詳細はPD Controlを参照してください。
store-limit-version
v7.1.0 の新機能
- 店舗制限の計算式のバージョンを制御します
- デフォルト値:
v1
- 値のオプション:
v1
: v1 モードでは、store limit
手動で変更して、単一の TiKV のスケジュール速度を制限できます。v2
: (実験的機能) v2モードでは、PDがTiKVスナップショットの機能に基づいて動的に調整するため、store limit
値を手動で設定する必要はありません。詳細については、 店舗制限の原則 v2を参照してください。
enable-joint-consensus
v5.0 の新機能
- レプリカのスケジュール設定にジョイントコンセンサスを使用するかどうかを制御します。この設定が無効になっている場合、PDは一度に1つのレプリカをスケジュールします。
- デフォルト値:
true
hot-regions-write-interval
v5.4.0 の新機能
- PD がホットリージョン情報を保存する時間間隔。
- デフォルト値:
10m
注記:
ホットリージョンに関する情報は3分ごとに更新されます。更新間隔を3分未満に設定した場合、更新間隔中の更新は意味をなさない可能性があります。
hot-regions-reserved-days
v5.4.0 の新機能
- ホットリージョン情報を保持する日数を指定します。
- デフォルト値:
7
enable-heartbeat-breakdown-metrics
v8.0.0 の新機能
- リージョンハートビートの内訳メトリクスを有効にするかどうかを制御します。これらのメトリクスは、リージョンハートビート処理の各段階で消費された時間を測定し、監視による分析を容易にします。
- デフォルト値:
true
enable-heartbeat-concurrent-runner
バージョン8.0.0の新機能
- リージョンハートビートの非同期同時処理を有効にするかどうかを制御します。有効にすると、独立したエグゼキューターがリージョンハートビートリクエストを非同期かつ同時に処理するため、ハートビート処理のスループットが向上し、レイテンシーが短縮されます。
- デフォルト値:
true
replication
レプリカに関連するコンフィグレーション項目
max-replicas
- レプリカ数、つまりリーダーとフォロワーの数の合計です。デフォルト値の
3
、リーダー1台とフォロワー2台を意味します。この設定が動的に変更された場合、PDはバックグラウンドでリージョンをスケジュールし、レプリカ数がこの設定と一致するようにします。 - デフォルト値:
3
location-labels
- TiKVクラスタのトポロジ情報
- デフォルト値:
[]
- クラスタトポロジ構成
isolation-level
- TiKVクラスタの最小トポロジカル分離レベル
- デフォルト値:
""
- クラスタトポロジ構成
strictly-match-label
- TiKV ラベルが PD
location-labels
一致するかどうかを厳密にチェックできるようにします。 - デフォルト値:
false
enable-placement-rules
placement-rules
有効にします。- デフォルト値:
true
- 配置ルール参照。
label-property
(非推奨)
reject-leader
種類のみをサポートする、ラベルに関連するコンフィグレーション項目。
注記:
バージョン5.2以降、ラベル関連の設定項目は非推奨となりました。レプリカポリシーの設定には配置ルール使用することをお勧めします。
key
(非推奨)
- Leaderを拒否した店舗のラベルキー
- デフォルト値:
""
value
(非推奨)
- Leaderを拒否した店舗のラベル値
- デフォルト値:
""
dashboard
TiDBダッシュボード内蔵 PD に関するコンフィグレーション項目です。
disable-custom-prom-addr
- TiDBダッシュボードでカスタム Prometheus データ ソース アドレスの構成を無効にするかどうか。
- デフォルト値:
false
true
に設定すると、TiDB ダッシュボードでカスタム Prometheus データ ソース アドレスを構成すると、TiDB ダッシュボードはエラーを報告します。
tidb-cacert-path
- ルートCA証明書ファイルのパス。TLSを使用してTiDBのSQLサービスに接続するときに、このパスを設定できます。
- デフォルト値:
""
tidb-cert-path
- SSL証明書ファイルのパス。TLSを使用してTiDBのSQLサービスに接続するときに、このパスを設定できます。
- デフォルト値:
""
tidb-key-path
- SSL 秘密鍵ファイルのパス。TLS を使用して TiDB の SQL サービスに接続するときに、このパスを設定できます。
- デフォルト値:
""
public-path-prefix
- TiDB ダッシュボードがリバース プロキシの背後でアクセスされる場合、この項目はすべての Web リソースのパブリック URL パス プレフィックスを設定します。
- デフォルト値:
/dashboard
- リバースプロキシを経由せずにTiDBダッシュボードにアクセスする場合は、この設定項目を変更しないでください。変更すると、アクセスの問題が発生する可能性があります。詳細はリバースプロキシの背後でTiDBダッシュボードを使用するご覧ください。
enable-telemetry
- v8.1.0 より前では、この構成項目は TiDB ダッシュボードでテレメトリ収集を有効にするかどうかを制御します。
- デフォルト値:
false
replication-mode
全リージョンのレプリケーションモードに関するコンフィグレーション項目です。詳細はDR自動同期モードを有効にするご覧ください。
コントローラ
このセクションでは、 PD for リソース管理に組み込まれている構成項目について説明します。
degraded-mode-wait-duration
- 縮退モードをトリガーするまでの待機時間。縮退モードとは、ローカルトークンバケット(LTB)とグローバルトークンバケット(GTB)が失われた場合、LTBはデフォルトのリソースグループ構成にフォールバックし、GTB認証トークンがなくなることを意味します。これにより、ネットワークの分離や異常が発生した場合でも、サービスが影響を受けないことが保証されます。
- デフォルト値: 0秒
- デフォルトでは、劣化モードは無効になっています。
request-unit
リクエストユニット(RU)に関する設定項目は以下のとおりです。
read-base-cost
- 読み取り要求からRUへの変換の基礎係数
- デフォルト値: 0.125
write-base-cost
- 書き込み要求からRUへの変換の基礎係数
- デフォルト値: 1
read-cost-per-byte
- 読み取りフローからRUへの変換の基礎係数
- デフォルト値: 1/(64 * 1024)
- 1 RU = 64 KiB の読み取りバイト
write-cost-per-byte
- 書き込みフローからRUへの変換の基礎係数
- デフォルト値: 1/1024
- 1 RU = 1 KiB 書き込みバイト
read-cpu-ms-cost
- CPUからRUへの変換の基礎係数
- デフォルト値: 1/3
- 1 RU = 3ミリ秒のCPU時間