TiKVConfiguration / コンフィグレーションファイル
TiKV 構成ファイルは、コマンドライン パラメーターよりも多くのオプションをサポートしています。 etc/config-template.tomlにデフォルトの構成ファイルがあり、名前をconfig.toml
に変更できます。
このドキュメントでは、コマンド ライン パラメーターに含まれていないパラメーターについてのみ説明します。詳細については、 コマンドライン パラメータを参照してください。
グローバル構成
abort-on-panic
TiKV がパニックしたときに
abort()
を呼び出してプロセスを終了するかどうかを設定します。このオプションは、TiKV がシステムにコア ダンプ ファイルの生成を許可するかどうかに影響します。- この構成項目の値が
false
の場合、TiKV がパニックになると、プロセスを終了するためにexit()
が呼び出されます。 - この構成項目の値が
true
の場合、TiKV がパニックになると、TiKV はabort()
を呼び出してプロセスを終了します。現時点では、TiKV を使用すると、システムは終了時にコア ダンプ ファイルを生成できます。コア ダンプ ファイルを生成するには、コア ダンプに関連するシステム構成も実行する必要があります (たとえば、ulimit -c
コマンドを使用してコア ダンプ ファイルのサイズ制限を設定し、コア ダンプ パスを構成します。オペレーティング システムによって関連する構成が異なります)。 )。コア ダンプ ファイルがディスク領域を占有しすぎて TiKV ディスク領域が不足するのを避けるために、コア ダンプ生成パスを TiKV データのディスク パーティションとは異なるディスク パーティションに設定することをお勧めします。
- この構成項目の値が
デフォルト値:
false
slow-log-file
- スローログを保存するファイル
- この構成項目を設定せずに
log.file.filename
を設定すると、log.file.filename
で指定されたログ ファイルにスロー ログが出力されます。 slow-log-file
もlog.file.filename
も設定されていない場合、すべてのログはデフォルトで「stderr」に出力されます。- 両方の設定項目が設定されている場合、通常のログは
log.file.filename
で指定されたログ ファイルに出力され、slow ログはslow-log-file
で指定されたログ ファイルに出力されます。 - デフォルト値:
""
slow-log-threshold
- スローログを出力するためのしきい値。処理時間がこの閾値よりも長い場合、スローログが出力されます。
- デフォルト値:
"1s"
ログv5.4.0 の新機能
ログに関するConfiguration / コンフィグレーション項目です。
v5.4.0 から、TiKV と TiDB のログ構成項目を一致させるために、TiKV は以前の構成項目
log-rotation-timespan
を廃止し、log-level
、log-format
、log-file
、log-rotation-size
を次のように変更します。古い構成アイテムのみを設定し、それらの値がデフォルト以外の値に設定されている場合、古いアイテムは新しいアイテムと互換性があります。新旧両方の構成項目が設定されている場合、新しい項目が有効になります。
level
v5.4.0 の新機能
- ログレベル
- オプションの値:
"debug"
、"info"
、"warn"
、"error"
、"fatal"
- デフォルト値:
"info"
format
v5.4.0 の新機能
- ログ形式
- オプションの値:
"json"
、"text"
- デフォルト値:
"text"
enable-timestamp
v5.4.0 の新機能
- ログのタイムスタンプを有効にするか無効にするかを決定します
- オプションの値:
true
、false
- デフォルト値:
true
log.file v5.4.0の新機能
- ログファイルに関するConfiguration / コンフィグレーション項目です。
filename
v5.4.0 の新機能
- ログファイル。この設定項目が設定されていない場合、デフォルトで「stderr」にログが出力されます。この設定項目が設定されている場合、ログは対応するファイルに出力されます。
- デフォルト値:
""
max-size
新機能
- 1 つのログ ファイルの最大サイズ。ファイル サイズがこの構成項目で設定された値よりも大きい場合、システムは単一のファイルを複数のファイルに自動的に分割します。
- デフォルト値:
300
- 最大値:
4096
- 単位:MiB
max-days
新機能
- TiKV がログ ファイルを保持する最大日数。
- 構成項目が設定されていない場合、またはその値がデフォルト値
0
に設定されている場合、TiKV はログ ファイルを消去しません。 - パラメータが
0
以外の値に設定されている場合、TiKV はmax-days
の後に期限切れのログ ファイルをクリーンアップします。
- 構成項目が設定されていない場合、またはその値がデフォルト値
- デフォルト値:
0
max-backups
v5.4.0 の新機能
- TiKV が保持するログ ファイルの最大数。
- 構成項目が設定されていない場合、またはその値がデフォルト値
0
に設定されている場合、TiKV はすべてのログ ファイルを保持します。 - 構成項目が
0
以外の値に設定されている場合、TiKV は最大でmax-backups
で指定された数の古いログ ファイルを保持します。たとえば、値が7
に設定されている場合、TiKV は最大 7 つの古いログ ファイルを保持します。
- 構成項目が設定されていない場合、またはその値がデフォルト値
- デフォルト値:
0
pd.enable-forwarding
新機能
- ネットワーク分離の可能性がある場合に、TiKV の PD クライアントがフォロワー経由でリーダーにリクエストを転送するかどうかを制御します。
- デフォルト値:
false
- 環境でネットワークが分離されている可能性がある場合、このパラメーターを有効にすると、サービスが利用できなくなる期間を短縮できます。
- 分離、ネットワークの中断、またはダウンタイムが発生したかどうかを正確に判断できない場合、このメカニズムを使用すると判断を誤るリスクがあり、可用性とパフォーマンスが低下します。ネットワーク障害が発生したことがない場合は、このパラメーターを有効にすることはお勧めしません。
サーバー
- サーバーに関連するConfiguration / コンフィグレーション項目。
status-thread-pool-size
HTTP
の API サービスのワーカー スレッドの数- デフォルト値:
1
- 最小値:
1
grpc-compression-type
- gRPC メッセージの圧縮アルゴリズム
- オプションの値:
"none"
、"deflate"
、"gzip"
- デフォルト値:
"none"
- 注: 値が
gzip
の場合、場合によっては対応する圧縮アルゴリズムが完了しない可能性があるため、TiDB ダッシュボードに表示エラーが発生します。値をデフォルトのnone
に戻すと、TiDB ダッシュボードは正常に表示されます。
grpc-concurrency
- gRPC ワーカー スレッドの数。 gRPC スレッド プールのサイズを変更する場合は、 TiKV スレッド プールのパフォーマンス チューニングを参照してください。
- デフォルト値:
5
- 最小値:
1
grpc-concurrent-stream
- gRPC ストリームで許可される同時リクエストの最大数
- デフォルト値:
1024
- 最小値:
1
grpc-memory-pool-quota
- gRPC で使用できるメモリ サイズを制限します
- デフォルト値: 制限なし
- OOM が観察された場合に備えてメモリを制限します。使用を制限すると、潜在的な失速につながる可能性があることに注意してください
grpc-raft-conn-num
- Raft通信用の TiKV ノード間のリンクの最大数
- デフォルト値:
1
- 最小値:
1
max-grpc-send-msg-len
- 送信できる gRPC メッセージの最大長を設定します
- デフォルト値:
10485760
- 単位: バイト
- 最大値:
2147483647
grpc-stream-initial-window-size
- gRPC ストリームのウィンドウ サイズ
- デフォルト値:
2MB
- 単位: KB|MB|GB
- 最小値:
"1KB"
grpc-keepalive-time
- その gRPC が
keepalive
の Ping メッセージを送信する時間間隔 - デフォルト値:
"10s"
- 最小値:
"1s"
grpc-keepalive-timeout
- gRPC ストリームのタイムアウトを無効にします
- デフォルト値:
"3s"
- 最小値:
"1s"
concurrent-send-snap-limit
- 同時に送信されるスナップショットの最大数
- デフォルト値:
32
- 最小値:
1
concurrent-recv-snap-limit
- 同時に受信するスナップショットの最大数
- デフォルト値:
32
- 最小値:
1
end-point-recursion-limit
- TiKV がコプロセッサー DAG 式をデコードするときに許可される再帰レベルの最大数
- デフォルト値:
1000
- 最小値:
1
end-point-request-max-handle-duration
- タスクを処理するための TiDB の TiKV へのプッシュダウン要求に許可される最長期間
- デフォルト値:
"60s"
- 最小値:
"1s"
snap-max-write-bytes-per-sec
- スナップショット処理時の最大許容ディスク帯域幅
- デフォルト値:
"100MB"
- 単位: KB|MB|GB
- 最小値:
"1KB"
end-point-slow-log-threshold
- TiDB のプッシュダウン リクエストがスロー ログを出力する時間のしきい値。処理時間がこの閾値よりも長い場合、スローログが出力されます。
- デフォルト値:
"1s"
- 最小値:
0
raft-client-queue-size
- TiKV のRaftメッセージのキュー サイズを指定します。時間内に送信されなかったメッセージが多すぎてバッファがいっぱいになったり、メッセージが破棄されたりする場合は、より大きな値を指定してシステムの安定性を向上させることができます。
- デフォルト値:
8192
simple simplify-metrics
v6.1.1 の新機能
- 返されたモニタリング メトリックを単純化するかどうかを指定します。値を
true
に設定すると、TiKV は一部のメトリックを除外することで、各リクエストに対して返されるデータの量を減らします。 - デフォルト値:
false
forward-max-connections-per-address
v5.0.0 の新機能
- サーバーへのサービスおよび転送要求の接続プールのサイズを設定します。小さすぎる値に設定すると、リクエストのレイテンシーと負荷分散に影響します。
- デフォルト値:
4
readpool.unified
読み取り要求を処理する単一のスレッド プールに関連するConfiguration / コンフィグレーション項目。このスレッド プールは、4.0 バージョン以降、元のストレージ スレッド プールとコプロセッサ スレッド プールに取って代わります。
min-thread-count
- 統合読み取りプールの最小作業スレッド数
- デフォルト値:
1
max-thread-count
- 統合読み取りプールまたは UnifyReadPool スレッド プールの最大作業スレッド数。このスレッド プールのサイズを変更する場合は、 TiKV スレッド プールのパフォーマンス チューニングを参照してください。
- 値の範囲:
[min-thread-count, MAX(4, CPU)]
。MAX(4, CPU)
で、CPU
は CPU コアの数を意味します。MAX(4, CPU)
は4
とCPU
のうち大きい方の値を取ります。 - デフォルト値: MAX(4, CPU * 0.8)
stack-size
- 統合スレッド プール内のスレッドのスタック サイズ
- タイプ: 整数 + 単位
- デフォルト値:
"10MB"
- 単位: KB|MB|GB
- 最小値:
"2MB"
- 最大値:システムで実行された
ulimit -sH
コマンドの結果として出力される K バイト数。
max-tasks-per-worker
- 統合読み取りプール内の 1 つのスレッドに許可されるタスクの最大数。値を超えた場合は
Server Is Busy
を返します。 - デフォルト値:
2000
- 最小値:
2
readpool.storage
ストレージ スレッド プールに関連するConfiguration / コンフィグレーションアイテム。
use-unified-pool
- ストレージ要求に統合スレッド プール (
readpool.unified
で構成) を使用するかどうかを決定します。このパラメーターの値がfalse
の場合、別のスレッド プールが使用されます。これは、このセクションの残りのパラメーター (readpool.storage
) によって構成されます。 - デフォルト値: このセクション (
readpool.storage
) に他の構成がない場合、デフォルト値はtrue
です。それ以外の場合、下位互換性のために、デフォルト値はfalse
です。このオプションを有効にする前に、必要に応じてreadpool.unified
の構成を変更してください。
high-concurrency
- 高優先度
read
の要求を処理する同時スレッドの許容数 8
≤cpu num
≤16
の場合、デフォルト値はcpu_num * 0.5
です。cpu num
が8
より小さい場合、デフォルト値は4
です。cpu num
が16
より大きい場合、デフォルト値は8
です。- 最小値:
1
normal-concurrency
- 通常優先度
read
の要求を処理する同時スレッドの許容数 8
≤cpu num
≤16
の場合、デフォルト値はcpu_num * 0.5
です。cpu num
が8
より小さい場合、デフォルト値は4
です。cpu num
が16
より大きい場合、デフォルト値は8
です。- 最小値:
1
low-concurrency
- 低優先度
read
の要求を処理する同時スレッドの許容数 8
≤cpu num
≤16
の場合、デフォルト値はcpu_num * 0.5
です。cpu num
が8
より小さい場合、デフォルト値は4
です。cpu num
が16
より大きい場合、デフォルト値は8
です。- 最小値:
1
max-tasks-per-worker-high
- 優先度の高いスレッド プール内の 1 つのスレッドに許可されるタスクの最大数。値を超えた場合は
Server Is Busy
を返します。 - デフォルト値:
2000
- 最小値:
2
max-tasks-per-worker-normal
- 標準優先度のスレッド プール内の 1 つのスレッドに許可されるタスクの最大数。値を超えた場合は
Server Is Busy
を返します。 - デフォルト値:
2000
- 最小値:
2
max-tasks-per-worker-low
- 優先度の低いスレッド プール内の 1 つのスレッドに許可されるタスクの最大数。値を超えた場合は
Server Is Busy
を返します。 - デフォルト値:
2000
- 最小値:
2
stack-size
- ストレージ読み取りスレッド プール内のスレッドのスタック サイズ
- タイプ: 整数 + 単位
- デフォルト値:
"10MB"
- 単位: KB|MB|GB
- 最小値:
"2MB"
- 最大値:システムで実行された
ulimit -sH
コマンドの結果として出力される K バイト数。
readpool.coprocessor
コプロセッサ スレッド プールに関連するConfiguration / コンフィグレーション項目。
use-unified-pool
- コプロセッサー要求に統合スレッド・プール (
readpool.unified
で構成) を使用するかどうかを決定します。このパラメーターの値がfalse
の場合、別のスレッド プールが使用されます。これは、このセクションの残りのパラメーター (readpool.coprocessor
) によって構成されます。 - デフォルト値: このセクションのパラメーター (
readpool.coprocessor
) が設定されていない場合、デフォルト値はtrue
です。それ以外の場合、下位互換性のためにデフォルト値はfalse
です。このパラメータを有効にする前に、readpool.unified
の設定項目を調整してください。
high-concurrency
- チェックポイントなどの優先度の高いコプロセッサー要求を処理する同時スレッドの許容数
- デフォルト値:
CPU * 0.8
- 最小値:
1
normal-concurrency
- 通常優先度のコプロセッサー要求を処理する同時スレッドの許容数
- デフォルト値:
CPU * 0.8
- 最小値:
1
low-concurrency
- テーブルスキャンなどの優先度の低いコプロセッサー要求を処理する同時スレッドの許容数
- デフォルト値:
CPU * 0.8
- 最小値:
1
max-tasks-per-worker-high
- 優先順位の高いスレッド プール内の 1 つのスレッドに許可されるタスクの数。この数を超えると、
Server Is Busy
が返されます。 - デフォルト値:
2000
- 最小値:
2
max-tasks-per-worker-normal
- 標準優先度のスレッド プールで 1 つのスレッドに許可されるタスクの数。この数を超えると、
Server Is Busy
が返されます。 - デフォルト値:
2000
- 最小値:
2
max-tasks-per-worker-low
- 優先順位の低いスレッド プール内の 1 つのスレッドに許可されるタスクの数。この数を超えると、
Server Is Busy
が返されます。 - デフォルト値:
2000
- 最小値:
2
stack-size
- コプロセッサー・スレッド・プール内のスレッドのスタック・サイズ
- タイプ: 整数 + 単位
- デフォルト値:
"10MB"
- 単位: KB|MB|GB
- 最小値:
"2MB"
- 最大値:システムで実行された
ulimit -sH
コマンドの結果として出力される K バイト数。
保管所
ストレージに関するConfiguration / コンフィグレーション項目。
scheduler-concurrency
- キーの同時操作を防止する内蔵メモリーロック機構。各キーには、異なるスロットにハッシュがあります。
- デフォルト値:
524288
- 最小値:
1
scheduler-worker-pool-size
- スケジューラ スレッド プール内のスレッドの数。スケジューラ スレッドは、主にデータ書き込み前のトランザクションの一貫性をチェックするために使用されます。 CPU コアの数が
16
以上の場合、デフォルト値は8
です。それ以外の場合、デフォルト値は4
です。スケジューラ スレッド プールのサイズを変更する場合は、 TiKV スレッド プールのパフォーマンス チューニングを参照してください。 - デフォルト値:
4
- 値の範囲:
[1, MAX(4, CPU)]
。MAX(4, CPU)
で、CPU
は CPU コアの数を意味します。MAX(4, CPU)
は4
とCPU
のうち大きい方の値を取ります。
scheduler-pending-write-threshold
- 書き込みキューの最大サイズ。この値を超えると、TiKV への新しい書き込みに対して
Server Is Busy
エラーが返されます。 - デフォルト値:
"100MB"
- 単位: MB|GB
reserve-space
- TiKV が開始されると、ディスク保護としてディスク上にいくらかのスペースが確保されます。残りのディスク容量が予約容量よりも少ない場合、TiKV は一部の書き込み操作を制限します。予約領域は 2 つの部分に分けられます。予約領域の 80% は、ディスク領域が不足している場合に操作に必要な追加のディスク領域として使用され、残りの 20% は一時ファイルを格納するために使用されます。スペースを再利用するプロセスで、余分なディスク スペースを使用しすぎてストレージが使い果たされた場合、この一時ファイルは、サービスを復元するための最後の保護として機能します。
- 一時ファイルの名前は
space_placeholder_file
で、storage.data-dir
ディレクトリにあります。ディスク容量が不足して TiKV がオフラインになった場合、TiKV を再起動すると、一時ファイルは自動的に削除され、TiKV は容量を再利用しようとします。 - 残りのスペースが不足している場合、TiKV は一時ファイルを作成しません。保護の有効性は、予約済みスペースのサイズに関連しています。予約領域のサイズは、ディスク容量の 5% とこの構成値の間の大きい方の値です。この構成項目の値が
"0MB"
の場合、TiKV はこのディスク保護機能を無効にします。 - デフォルト値:
"5GB"
- 単位: MB|GB
enable-ttl
- TTL は「Time to live」の略です。この項目を有効にすると、TiKV は TTL に達したデータを自動的に削除します。 TTL の値を設定するには、クライアント経由でデータを書き込むときにリクエストで指定する必要があります。 TTL が指定されていない場合、TiKV は対応するデータを自動的に削除しないことを意味します。
- デフォルト値:
false
ttl-check-poll-interval
- 物理スペースを再利用するためにデータをチェックする間隔。データが TTL に達すると、TiKV はチェック中に物理スペースを強制的に解放します。
- デフォルト値:
"12h"
- 最小値:
"0s"
background-error-recovery-window
v6.1.0 の新機能
- RocksDB が回復可能なバックグラウンド エラーを検出した後、TiKV が回復するまでの最大許容時間。一部のバックグラウンド SST ファイルが破損している場合、RocksDB は、破損した SST ファイルが属するピアを特定した後、ハートビートを介して PD に報告します。その後、PD はスケジューリング操作を実行して、このピアを削除します。最後に、破損した SST ファイルが直接削除され、TiKV バックグラウンドが再び正常に機能するようになります。
- 破損した SST ファイルは、リカバリが完了するまでまだ存在します。この間、RocksDB はデータの書き込みを続行できますが、データの破損した部分を読み取るとエラーが報告されます。
- この時間内にリカバリが完了しない場合、TiKV はpanicになります。
- デフォルト値: 1h
api-version
v6.1.0 の新機能
- TiKV が未加工のキー値ストアとして機能するときに TiKV によって使用されるストレージ形式とインターフェイス バージョン。
- 値のオプション:
1
: API V1 を使用し、クライアントから渡されたデータをエンコードせず、データをそのまま格納します。 v6.1.0 より前のバージョンでは、TiKV はデフォルトで API V1 を使用します。2
: API V2 を使用:- データは MVCC (Multi-Version Concurrency Control) 形式で保存され、タイムスタンプは tikv-server によって PD (TSO) から取得されます。
- API V2 を使用する場合は、同時に
storage.enable-ttl = true
を設定する必要があります。 API V2 は TTL 機能をサポートしているため、enable-ttl
を明示的にオンにする必要があります。そうしないと、storage.enable-ttl
がデフォルトでfalse
になるため、競合が発生します。 - API V2 が有効になっている場合、期限切れのデータを再利用するには、少なくとも 1 つの tidb-server インスタンスをデプロイする必要があります。この tidb-server インスタンスは読み取りまたは書き込みサービスを提供できないことに注意してください。高可用性を確保するために、複数の tidb-server インスタンスをデプロイできます。
- API V2 にはクライアント サポートが必要です。詳細については、API V2 のクライアントの対応する命令を参照してください。
- デフォルト値:
1
- TiKV API V2 はまだ実験的機能です。本番環境で使用することはお勧めしません。
- 新しい TiKV クラスターをデプロイする場合にのみ、
api-version
から2
の値を設定できます。既存の TiKV クラスターでこの構成項目の値を変更しないでください。異なるapi-version
値を持つ TiKV クラスターは、異なるデータ形式を使用します。したがって、既存の TiKV クラスターでこの項目の値を変更すると、クラスターはデータを異なる形式で保存し、データの破損を引き起こします。 TiKV クラスターを起動すると、「storage.api_version を切り替えることができません」というエラーが発生します。- API V2 が有効になった後、TiKV クラスターを v6.1.0 より前のバージョンにダウングレードすることはできません。そうしないと、データが破損する可能性があります。
storage.block-cache
複数の RocksDBカラムファミリー (CF) 間でのブロック キャッシュの共有に関連するConfiguration / コンフィグレーション項目。これらの構成項目を有効にすると、列ファミリーごとに個別に構成されたブロック キャッシュが無効になります。
shared
- ブロック キャッシュの共有を有効または無効にします。
- デフォルト値:
true
capacity
- 共有ブロック キャッシュのサイズ。
- デフォルト値: 合計システム メモリのサイズの 45%
- 単位: KB|MB|GB
storage.flow-control
TiKVにおけるフロー制御機構に関するConfiguration / コンフィグレーション項目です。このメカニズムは、RocksDB の書き込みストール メカニズムに取って代わり、スケジューラレイヤーでフローを制御します。
enable
- フロー制御メカニズムを有効にするかどうかを決定します。有効にすると、TiKV は KvDB の書き込みストール メカニズムと RaftDB の書き込みストール メカニズム (memtable を除く) を自動的に無効にします。
- デフォルト値:
true
memtables-threshold
- kvDB memtables の数がこのしきい値に達すると、フロー制御メカニズムが機能し始めます。
enable
がtrue
に設定されている場合、この構成項目はrocksdb.(defaultcf|writecf|lockcf).max-write-buffer-number
をオーバーライドします。 - デフォルト値:
5
l0-files-threshold
- kvDB L0 ファイルの数がこのしきい値に達すると、フロー制御メカニズムが機能し始めます。
enable
がtrue
に設定されている場合、この構成項目はrocksdb.(defaultcf|writecf|lockcf).level0-slowdown-writes-trigger
をオーバーライドします。 - デフォルト値:
20
soft-pending-compaction-bytes-limit
- KvDB の保留中の圧縮バイトがこのしきい値に達すると、フロー制御メカニズムは一部の書き込み要求を拒否し始め、
ServerIsBusy
エラーを報告します。enable
がtrue
に設定されている場合、この構成項目はrocksdb.(defaultcf|writecf|lockcf).soft-pending-compaction-bytes-limit
をオーバーライドします。 - デフォルト値:
"192GB"
hard-pending-compaction-bytes-limit
- KvDB の保留中の圧縮バイトがこのしきい値に達すると、フロー制御メカニズムはすべての書き込み要求を拒否し、
ServerIsBusy
エラーを報告します。enable
がtrue
に設定されている場合、この構成項目はrocksdb.(defaultcf|writecf|lockcf).hard-pending-compaction-bytes-limit
をオーバーライドします。 - デフォルト値:
"1024GB"
storage.io-rate-limit
I/Oレートリミッターに関するConfiguration / コンフィグレーション項目です。
max-bytes-per-sec
- サーバーが 1 秒間にディスクに書き込みまたはディスクから読み取ることができる最大 I/O バイトを制限します (以下の
mode
つの構成項目によって決定されます)。この制限に達すると、TiKV はフォアグラウンド操作よりもバックグラウンド操作を調整することを優先します。この構成項目の値は、ディスクの最適な I/O 帯域幅 (たとえば、クラウド ディスク ベンダーによって指定された最大 I/O 帯域幅) に設定する必要があります。この構成値がゼロに設定されている場合、ディスク I/O 操作は制限されません。 - デフォルト値:
"0MB"
mode
- どのタイプの I/O 操作がカウントされ、しきい値
max-bytes-per-sec
未満に抑制されるかを決定します。現在、書き込み専用モードのみがサポートされています。 - オプション値:
"write-only"
- デフォルト値:
"write-only"
いかだ屋
Raftstore に関連するConfiguration / コンフィグレーション項目。
prevote
prevote
を有効または無効にします。この機能を有効にすると、ネットワーク パーティションから回復した後のシステムのジッターを減らすのに役立ちます。- デフォルト値:
true
capacity
- データを保存できる最大サイズであるストレージ容量。
capacity
を指定しない場合、現在のディスクの容量が優先されます。複数の TiKV インスタンスを同じ物理ディスクにデプロイするには、このパラメーターを TiKV 構成に追加します。詳細については、 ハイブリッド展開の主要なパラメーターを参照してください。 - デフォルト値:
0
- 単位: KB|MB|GB
raftdb-path
- デフォルトでは
storage.data-dir/raft
であるRaftライブラリへのパス - デフォルト値:
""
raft-base-tick-interval
ノート:
この構成項目は、SQL ステートメントを介して照会することはできませんが、構成ファイルで構成できます。
- Raftステート マシンが動作する時間間隔
- デフォルト値:
"1s"
- 最小値:
0
より大きい
raft-heartbeat-ticks
ノート:
この構成項目は、SQL ステートメントを介して照会することはできませんが、構成ファイルで構成できます。
- ハートビートが送信されたときに通過したティックの数。これは、ハートビートが
raft-base-tick-interval
*raft-heartbeat-ticks
の時間間隔で送信されることを意味します。 - デフォルト値:
2
- 最小値:
0
より大きい
raft-election-timeout-ticks
ノート:
この構成項目は、SQL ステートメントを介して照会することはできませんが、構成ファイルで構成できます。
- Raft選択が開始されたときに渡されたティックの数。これは、 Raftグループにリーダーがいない場合、約
raft-base-tick-interval
*raft-election-timeout-ticks
の時間間隔の後にリーダー選出が開始されることを意味します。 - デフォルト値:
10
- 最小値:
raft-heartbeat-ticks
raft-min-election-timeout-ticks
ノート:
この構成項目は、SQL ステートメントを介して照会することはできませんが、構成ファイルで構成できます。
- Raft選択が開始されるティックの最小数。数値が
0
の場合、値raft-election-timeout-ticks
が使用されます。このパラメーターの値はraft-election-timeout-ticks
以上でなければなりません。 - デフォルト値:
0
- 最小値:
0
raft-max-election-timeout-ticks
ノート:
この構成項目は、SQL ステートメントを介して照会することはできませんが、構成ファイルで構成できます。
- Raft選択が開始されるティックの最大数。数値が
0
の場合、raft-election-timeout-ticks
*2
の値が使用されます。 - デフォルト値:
0
- 最小値:
0
raft-max-size-per-msg
ノート:
この構成項目は、SQL ステートメントを介して照会することはできませんが、構成ファイルで構成できます。
- 1 つのメッセージ パケットのサイズに対するソフト リミット
- デフォルト値:
"1MB"
- 最小値:
0
より大きい - 最大値:
3GB
- 単位: KB|MB|GB
raft-max-inflight-msgs
ノート:
この構成項目は、SQL ステートメントを介して照会することはできませんが、構成ファイルで構成できます。
- 確認するRaftログの数。この数を超えると、 Raftステート マシンはログの送信を遅くします。
- デフォルト値:
256
- 最小値:
0
より大きい - 最大値:
16384
raft-entry-max-size
- 1 つのログの最大サイズのハード リミット
- デフォルト値:
"8MB"
- 最小値:
0
- 単位: MB|GB
raft-log-compact-sync-interval
v5.3 の新機能
- 不要なRaftログを圧縮する時間間隔
- デフォルト値:
"2s"
- 最小値:
"0s"
raft-log-gc-tick-interval
- Raftログを削除するポーリング タスクがスケジュールされる時間間隔。
0
は、この機能が無効であることを意味します。 - デフォルト値:
"3s"
- 最小値:
"0s"
raft-log-gc-threshold
- 残りのRaftログの最大許容数のソフト リミット
- デフォルト値:
50
- 最小値:
1
raft-log-gc-count-limit
- 残りのRaftログの許容数のハード リミット
- デフォルト値:3/4リージョンサイズに収まるログ数(1ログあたり1MBとして計算)
- 最小値:
0
raft-log-gc-size-limit
- 残りのRaftログの許容サイズのハード リミット
- デフォルト値:リージョンサイズの 3/4
- 最小値:
0
より大きい
raft-log-reserve-max-ticks
v5.3 の新機能
- この構成項目で設定されたティック数が経過した後、残りのRaftログの数が
raft-log-gc-threshold
で設定された値に達しない場合でも、TiKV はこれらのログに対してガベージ コレクション (GC) を実行します。 - デフォルト値:
6
- 最小値:
0
より大きい
raft-entry-cache-life-time
- メモリ内のログ キャッシュに許可される最大残り時間。
- デフォルト値:
"30s"
- 最小値:
0
hibernate-regions
- Hibernate リージョンを有効または無効にします。このオプションを有効にすると、長時間アイドル状態のリージョンが自動的に休止状態に設定されます。これにより、アイドル状態のリージョンのRaftリーダーとフォロワーの間のハートビート メッセージによって引き起こされる余分なオーバーヘッドが削減されます。
peer-stale-state-check-interval
を使用して、休止状態のリージョンのリーダーとフォロワーの間のハートビート間隔を変更できます。 - デフォルト値: v5.0.2 以降のバージョンでは
true
。 v5.0.2 より前のバージョンではfalse
split-region-check-tick-interval
- リージョン分割が必要かどうかを確認する間隔を指定します。
0
は、この機能が無効であることを意味します。 - デフォルト値:
"10s"
- 最小値:
0
region-split-check-diff
- リージョン分割前にリージョンデータが超えることのできる最大値
- デフォルト値:リージョンサイズの 1/16。
- 最小値:
0
region-compact-check-interval
- RocksDB 圧縮を手動でトリガーする必要があるかどうかを確認する時間間隔。
0
は、この機能が無効であることを意味します。 - デフォルト値:
"5m"
- 最小値:
0
region-compact-check-step
- 手動圧縮の各ラウンドで一度にチェックされるリージョンの数
- デフォルト値:
100
- 最小値:
0
region-compact-min-tombstones
- RocksDB 圧縮をトリガーするために必要なトゥームストーンの数
- デフォルト値:
10000
- 最小値:
0
region-compact-tombstones-percent
- RocksDB 圧縮をトリガーするために必要なトゥームストーンの割合
- デフォルト値:
30
- 最小値:
1
- 最大値:
100
pd-heartbeat-tick-interval
- PD へのリージョンのハートビートがトリガーされる時間間隔。
0
は、この機能が無効であることを意味します。 - デフォルト値:
"1m"
- 最小値:
0
pd-store-heartbeat-tick-interval
- PD へのストアのハートビートがトリガーされる時間間隔。
0
は、この機能が無効であることを意味します。 - デフォルト値:
"10s"
- 最小値:
0
snap-mgr-gc-tick-interval
- 期限切れのスナップショット ファイルのリサイクルがトリガーされる時間間隔。
0
は、この機能が無効であることを意味します。 - デフォルト値:
"1m"
- 最小値:
0
snap-gc-timeout
- スナップショット ファイルが保存される最長時間
- デフォルト値:
"4h"
- 最小値:
0
snap-generator-pool-size
v5.4.0 の新機能
snap-generator
スレッド プールのサイズを構成します。- リカバリ シナリオでリージョンが TiKV でより高速にスナップショットを生成するには、対応するワーカーの
snap-generator
スレッドの数を増やす必要があります。この構成項目を使用して、snap-generator
スレッド プールのサイズを増やすことができます。 - デフォルト値:
2
- 最小値:
1
lock-cf-compact-interval
- TiKV が Lock カラム Family の手動圧縮をトリガーする時間間隔
- デフォルト値:
"256MB"
- デフォルト値:
"10m"
- 最小値:
0
lock-cf-compact-bytes-threshold
- TiKV がロックカラムファミリーの手動圧縮をトリガーするサイズ
- デフォルト値:
"256MB"
- 最小値:
0
- 単位:MB
notify-capacity
- リージョンメッセージ キューの最長の長さ。
- デフォルト値:
40960
- 最小値:
0
messages-per-tick
- バッチごとに処理されるメッセージの最大数
- デフォルト値:
4096
- 最小値:
0
max-peer-down-duration
- ピアに許可される最長の非アクティブ期間。タイムアウトのあるピアは
down
としてマークされ、PD は後でそれを削除しようとします。 - デフォルト値:
"10m"
- 最小値: Hibernate リージョンが有効な場合、最小値は
peer-stale-state-check-interval * 2
です。 Hibernate リージョンが無効になっている場合、最小値は0
です。
max-leader-missing-duration
- Raftグループがリーダーを欠いている状態にピアが留まることができる最長期間。この値を超えると、ピアはピアが削除されたかどうかを PD で確認します。
- デフォルト値:
"2h"
- 最小値:
abnormal-leader-missing-duration
より大きい
abnormal-leader-missing-duration
- Raftグループがリーダーを欠いている状態にピアが留まることができる最長期間。この値を超えると、ピアは異常と見なされ、メトリックとログでマークされます。
- デフォルト値:
"10m"
- 最小値:
peer-stale-state-check-interval
より大きい
peer-stale-state-check-interval
- ピアがRaftグループにリーダーがない状態にあるかどうかのチェックをトリガーする時間間隔。
- デフォルト値:
"5m"
- 最小値:
2 * election-timeout
より大きい
leader-transfer-max-log-lag
- Raftリーダー転送中に転送先に許可される欠落ログの最大数
- デフォルト値:
128
- 最小値:
10
max-snapshot-file-raw-size
v6.1.0 の新機能
- スナップショット ファイルのサイズがこの設定値を超えると、このファイルは複数のファイルに分割されます。
- デフォルト値:
100MiB
- 最小値:
100MiB
snap-apply-batch-size
- インポートされたスナップショット ファイルがディスクに書き込まれるときに必要なメモリ キャッシュ サイズ
- デフォルト値:
"10MB"
- 最小値:
0
- 単位:MB
consistency-check-interval
- 整合性チェックがトリガーされる時間間隔。
0
は、この機能が無効であることを意味します。 - デフォルト値:
"0s"
- 最小値:
0
raft-store-max-leader-lease
- Raftリーダーの最長信頼期間
- デフォルト値:
"9s"
- 最小値:
0
merge-max-log-gap
merge
を実行したときに許容される欠落ログの最大数- デフォルト値:
10
- 最小値:
raft-log-gc-count-limit
より大きい
merge-check-tick-interval
- リージョンのマージが必要かどうかを TiKV がチェックする時間間隔
- デフォルト値:
"2s"
- 最小値:
0
より大きい
use-delete-range
rocksdb delete_range
インターフェイスからデータを削除するかどうかを決定します- デフォルト値:
false
cleanup-import-sst-interval
- 期限切れの SST ファイルがチェックされる時間間隔。
0
は、この機能が無効であることを意味します。 - デフォルト値:
"10m"
- 最小値:
0
local-read-batch-size
- 1 回のバッチで処理される読み取り要求の最大数
- デフォルト値:
1024
- 最小値:
0
より大きい
apply-max-batch-size
- Raftステート マシンは、BatchSystem によってバッチでデータ書き込み要求を処理します。この設定項目は、1 つのバッチでリクエストを処理できるRaftステート マシンの最大数を指定します。
- デフォルト値:
256
- 最小値:
0
より大きい - 最大値:
10240
apply-pool-size
- データをディスクにフラッシュするプール内のスレッドの許容数。これは、適用スレッド プールのサイズです。このスレッド プールのサイズを変更する場合は、 TiKV スレッド プールのパフォーマンス チューニングを参照してください。
- デフォルト値:
2
- 値の範囲:
[1, CPU * 10]
。CPU
は、CPU コアの数を意味します。
store-max-batch-size
- Raftステート マシンは、BatchSystem によってバッチでログをディスクにフラッシュするための要求を処理します。この設定項目は、1 つのバッチでリクエストを処理できるRaftステート マシンの最大数を指定します。
hibernate-regions
が有効な場合、デフォルト値は256
です。hibernate-regions
が無効になっている場合、デフォルト値は1024
です。- 最小値:
0
より大きい - 最大値:
10240
store-pool-size
- Raftを処理するプール内のスレッドの許容数。これは Raftstore スレッド プールのサイズです。このスレッド プールのサイズを変更する場合は、 TiKV スレッド プールのパフォーマンス チューニングを参照してください。
- デフォルト値:
2
- 値の範囲:
[1, CPU * 10]
。CPU
は、CPU コアの数を意味します。
store-io-pool-size
v5.3.0 の新機能
- Raft I/O タスクを処理するスレッドの許容数。これは StoreWriter スレッド プールのサイズです。このスレッド プールのサイズを変更する場合は、 TiKV スレッド プールのパフォーマンス チューニングを参照してください。
- デフォルト値:
0
- 最小値:
0
future-poll-size
future
を駆動するスレッドの許容数- デフォルト値:
1
- 最小値:
0
より大きい
cmd-batch
- リクエストのバッチ処理を有効にするかどうかを制御します。有効にすると、書き込みパフォーマンスが大幅に向上します。
- デフォルト値:
true
inspect-interval
- 一定の間隔で、TiKV は Raftstore コンポーネントのレイテンシーを検査します。このパラメーターは、検査の間隔を指定します。レイテンシーがこの値を超えると、この検査はタイムアウトとしてマークされます。
- タイムアウト検査の割合からTiKVノードが遅いかどうかを判断します。
- デフォルト値:
"500ms"
- 最小値:
"1ms"
raft-write-size-limit
v5.3.0 の新機能
- Raftデータがディスクに書き込まれるしきい値を決定します。データサイズがこの構成項目の値より大きい場合、データはディスクに書き込まれます。
store-io-pool-size
の値が0
の場合、この構成アイテムは有効になりません。 - デフォルト値:
1MB
- 最小値:
0
コプロセッサー
コプロセッサに関連するConfiguration / コンフィグレーション項目。
split-region-on-table
- リージョンをテーブルごとに分割するかどうかを決定します。この機能は TiDB モードでのみ使用することをお勧めします。
- デフォルト値:
false
batch-split-limit
- バッチでのリージョン分割のしきい値。この値を大きくすると、リージョン分割が高速になります。
- デフォルト値:
10
- 最小値:
1
region-max-size
- リージョンの最大サイズ。値を超えると、リージョンが多数に分割されます。
- デフォルト値:
region-split-size / 2 * 3
- 単位: KiB|MiB|GiB
region-split-size
- 新しく分割されたリージョンのサイズ。この値は推定値です。
- デフォルト値:
"96MiB"
- 単位: KiB|MiB|GiB
region-max-keys
- リージョンで許可されるキーの最大数。この値を超えると、リージョンが多数に分割されます。
- デフォルト値:
region-split-keys / 2 * 3
region-split-keys
- 新しく分割されたリージョン内のキーの数。この値は推定値です。
- デフォルト値:
960000
enable-region-bucket
v6.1.0 の新機能
- リージョンをバケットと呼ばれる小さな範囲に分割するかどうかを決定します。バケットは、同時実行クエリの単位として使用され、スキャンの同時実行性を向上させます。バケットの設計について詳しくは、 動的サイズリージョンを参照してください。
- デフォルト値: false
region-bucket-size
v6.1.0 の新機能
enable-region-bucket
が true の場合のバケットのサイズ。- デフォルト値:
96MiB
report-region-buckets-tick-interval
v6.1.0 の新機能
enable-region-bucket
が true の場合、TiKV がバケット情報を PD に報告する間隔。- デフォルト値:
10s
RocksDB
RocksDBに関するConfiguration / コンフィグレーション項目
max-background-jobs
- RocksDB のバックグラウンド スレッドの数。 RocksDB スレッド プールのサイズを変更する場合は、 TiKV スレッド プールのパフォーマンス チューニングを参照してください。
- デフォルト値:
- CPU コア数が 10 の場合、デフォルト値は
9
です。 - CPU コア数が 8 の場合、デフォルト値は
7
です。 - CPU コア数が
N
の場合、デフォルト値はmax(2, min(N - 1, 9))
です。
- CPU コア数が 10 の場合、デフォルト値は
- 最小値:
2
max-background-flushes
- 同時バックグラウンド memtable フラッシュ ジョブの最大数
- デフォルト値:
- CPU コア数が 10 の場合、デフォルト値は
3
です。 - CPU コア数が 8 の場合、デフォルト値は
2
です。 - CPU コア数が
N
の場合、デフォルト値は[(max-background-jobs + 3) / 4]
です。
- CPU コア数が 10 の場合、デフォルト値は
- 最小値:
1
max-sub-compactions
- RocksDB で同時に実行されるサブ圧縮操作の数
- デフォルト値:
3
- 最小値:
1
max-open-files
- RocksDB が開くことができるファイルの総数
- デフォルト値:
40960
- 最小値:
-1
max-manifest-file-size
- RocksDB マニフェスト ファイルの最大サイズ
- デフォルト値:
"128MB"
- 最小値:
0
- 単位:B|KB|MB|GB
create-if-missing
- DB スイッチを自動的に作成するかどうかを決定します
- デフォルト値:
true
wal-recovery-mode
- WAL回復モード
- オプションの値:
"tolerate-corrupted-tail-records"
: すべてのログで不完全な末尾データを持つレコードを許容して破棄します"absolute-consistency"
: 破損したログが見つかった場合、リカバリを中止します"point-in-time"
: 最初の破損したログが検出されるまで、ログを順次回復します。"skip-any-corrupted-records"
: 災害後の復旧。データは可能な限り回復され、破損したレコードはスキップされます。
- デフォルト値:
"point-in-time"
wal-dir
- WALファイルが保存されているディレクトリ
- デフォルト値:
"/tmp/tikv/store"
wal-ttl-seconds
- アーカイブされた WAL ファイルの存続時間。この値を超えると、システムはこれらのファイルを削除します。
- デフォルト値:
0
- 最小値:
0
- 単位:秒
wal-size-limit
- アーカイブされた WAL ファイルのサイズ制限。この値を超えると、システムはこれらのファイルを削除します。
- デフォルト値:
0
- 最小値:
0
- 単位:B|KB|MB|GB
enable-statistics
- RocksDB の統計を有効にするかどうかを決定します
- デフォルト値:
true
stats-dump-period
- 統計がログに出力される間隔。
- デフォルト値:
10m
compaction-readahead-size
- RocksDB の圧縮中に先読み機能を有効にし、先読みデータのサイズを指定します。メカニカル ディスクを使用している場合は、値を少なくとも 2MB に設定することをお勧めします。
- デフォルト値:
0
- 最小値:
0
- 単位:B|KB|MB|GB
writable-file-max-buffer-size
- WritableFileWrite で使用される最大バッファ サイズ
- デフォルト値:
"1MB"
- 最小値:
0
- 単位:B|KB|MB|GB
use-direct-io-for-flush-and-compaction
- バックグラウンド フラッシュと圧縮で読み取りと書き込みの両方に
O_DIRECT
を使用するかどうかを決定します。このオプションのパフォーマンスへの影響:O_DIRECT
のバイパスを有効にして OS バッファー キャッシュの汚染を防ぎますが、その後のファイル読み取りではバッファー キャッシュの内容を再度読み取る必要があります。 - デフォルト値:
false
rate-bytes-per-sec
- RocksDB のコンパクション レート リミッタで許可される最大レート
- デフォルト値:
10GB
- 最小値:
0
- 単位:B|KB|MB|GB
rate-limiter-mode
- RocksDB のコンパクション レート リミッター モード
- オプションの値:
"read-only"
、"write-only"
、"all-io"
- デフォルト値:
"write-only"
rate-limiter-auto-tuned
v5.0 の新機能
- 最近のワークロードに基づいて、RocksDB の圧縮レート リミッターの構成を自動的に最適化するかどうかを決定します。この構成が有効になっている場合、圧縮保留中のバイトは通常よりわずかに高くなります。
- デフォルト値:
true
enable-pipelined-write
- パイプライン書き込みを有効にするかどうかを制御します。この構成が有効な場合、以前の Pipelined Write が使用されます。この構成を無効にすると、新しい Pipelined Commit メカニズムが使用されます。
- デフォルト値:
false
bytes-per-sync
- これらのファイルが非同期的に書き込まれている間に、OS がファイルをディスクに増分的に同期する速度
- デフォルト値:
"1MB"
- 最小値:
0
- 単位:B|KB|MB|GB
wal-bytes-per-sync
- WALファイルの書き込み中に、OSがWALファイルをディスクに段階的に同期する速度
- デフォルト値:
"512KB"
- 最小値:
0
- 単位:B|KB|MB|GB
info-log-max-size
- 情報ログの最大サイズ
- デフォルト値:
"1GB"
- 最小値:
0
- 単位:B|KB|MB|GB
info-log-roll-time
- 情報ログが切り捨てられる時間間隔。値が
0s
の場合、ログは切り捨てられません。 - デフォルト値:
"0s"
info-log-keep-log-file-num
- 保持されるログ ファイルの最大数
- デフォルト値:
10
- 最小値:
0
info-log-dir
- ログが保存されるディレクトリ
- デフォルト値:
""
rocksdb.titan
Titan関連のConfiguration / コンフィグレーション項目。
enabled
- タイタンを有効または無効にします
- デフォルト値:
false
dirname
- Titan Blob ファイルが保存されているディレクトリ
- デフォルト値:
"titandb"
disable-gc
- Titan が BLOB ファイルに対して実行するガベージ コレクション (GC) を無効にするかどうかを決定します。
- デフォルト値:
false
max-background-gc
- Titan の GC スレッドの最大数
- デフォルト値:
4
- 最小値:
1
rocksdb.defaultcf | rocksdb.writecf | rocksdb.lockcf
rocksdb.defaultcf
にrocksdb.lockcf
するConfiguration / コンフィグレーション項目rocksdb.writecf
。
block-size
- RocksDB ブロックのデフォルト サイズ
defaultcf
およびwritecf
のデフォルト値:"64KB"
lockcf
のデフォルト値:"16KB"
- 最小値:
"1KB"
- 単位: KB|MB|GB
block-cache-size
- RocksDB ブロックのキャッシュ サイズ
defaultcf
のデフォルト値:Total machine memory * 25%
writecf
のデフォルト値:Total machine memory * 15%
lockcf
のデフォルト値:Total machine memory * 2%
- 最小値:
0
- 単位: KB|MB|GB
disable-block-cache
- ブロックキャッシュを有効または無効にします
- デフォルト値:
false
cache-index-and-filter-blocks
- インデックスとフィルタのキャッシングを有効または無効にします
- デフォルト値:
true
pin-l0-filter-and-index-blocks
- レベル 0 の SST ファイルのインデックス ブロックとフィルター ブロックをメモリに固定するかどうかを決定します。
- デフォルト値:
true
use-bloom-filter
- ブルーム フィルターを有効または無効にします
- デフォルト値:
true
optimize-filters-for-hits
- フィルターのヒット率を最適化するかどうかを決定します
defaultcf
のデフォルト値:true
writecf
およびlockcf
のデフォルト値:false
whole-key-filtering
- キー全体をブルーム フィルターに入れるかどうかを決定します
defaultcf
およびlockcf
のデフォルト値:true
writecf
のデフォルト値:false
bloom-filter-bits-per-key
- ブルームフィルターが各キーに予約する長さ
- デフォルト値:
10
- 単位:バイト
block-based-bloom-filter
- 各ブロックがブルーム フィルターを作成するかどうかを決定します
- デフォルト値:
false
read-amp-bytes-per-bit
- 読み取り増幅の統計を有効または無効にします。
- オプションの値:
0
(無効)、>0
(有効)。 - デフォルト値:
0
- 最小値:
0
compression-per-level
- 各レベルのデフォルトの圧縮アルゴリズム
defaultcf
のデフォルト値: ["no", "no", "lz4", "lz4", "lz4", "zstd", "zstd"]writecf
のデフォルト値: ["no", "no", "lz4", "lz4", "lz4", "zstd", "zstd"]lockcf
のデフォルト値: ["no", "no", "no", "no", "no", "no", "no"]
bottommost-level-compression
- 最レイヤーの圧縮アルゴリズムを設定します。この構成項目は
compression-per-level
の設定をオーバーライドします。 - データが LSM ツリーに書き込まれて以来、RocksDB は最レイヤーの
compression-per-level
配列で指定された最後の圧縮アルゴリズムを直接採用しません。bottommost-level-compression
の場合、最初から最レイヤーで最も圧縮効果の高い圧縮アルゴリズムを使用できます。 - 最レイヤーの圧縮アルゴリズムを設定しない場合は、この構成項目の値を
disable
に設定します。 - デフォルト値:
"zstd"
write-buffer-size
- メモリブルサイズ
defaultcf
およびwritecf
のデフォルト値:"128MB"
lockcf
のデフォルト値:"32MB"
- 最小値:
0
- 単位: KB|MB|GB
max-write-buffer-number
- memtable の最大数。
storage.flow-control.enable
がtrue
に設定されている場合、storage.flow-control.memtables-threshold
はこの構成項目をオーバーライドします。 - デフォルト値:
5
- 最小値:
0
min-write-buffer-number-to-merge
- フラッシュをトリガーするために必要な memtable の最小数
- デフォルト値:
1
- 最小値:
0
max-bytes-for-level-base
- ベース レベル (L1) での最大バイト数。通常、memtable の 4 倍のサイズに設定されます。
defaultcf
およびwritecf
のデフォルト値:"512MB"
lockcf
のデフォルト値:"128MB"
- 最小値:
0
- 単位: KB|MB|GB
target-file-size-base
- ベース レベルでのターゲット ファイルのサイズ。
enable-compaction-guard
の値がtrue
の場合、この値はcompaction-guard-max-output-file-size
でオーバーライドされます。 - デフォルト値:
"8MB"
- 最小値:
0
- 単位: KB|MB|GB
level0-file-num-compaction-trigger
- 圧縮をトリガーする L0 のファイルの最大数
defaultcf
およびwritecf
のデフォルト値:4
lockcf
のデフォルト値:1
- 最小値:
0
level0-slowdown-writes-trigger
- 書き込みストールをトリガーする L0 のファイルの最大数。
storage.flow-control.enable
がtrue
に設定されている場合、storage.flow-control.l0-files-threshold
はこの構成項目をオーバーライドします。 - デフォルト値:
20
- 最小値:
0
level0-stop-writes-trigger
- 書き込みを完全にブロックするために必要な L0 のファイルの最大数
- デフォルト値:
36
- 最小値:
0
max-compaction-bytes
- 圧縮ごとにディスクに書き込まれる最大バイト数
- デフォルト値:
"2GB"
- 最小値:
0
- 単位: KB|MB|GB
compaction-pri
- 圧縮の優先タイプ
- オプションの値:
"by-compensated-size"
、"oldest-largest-seq-first"
、"oldest-smallest-seq-first"
、"min-overlapping-ratio"
defaultcf
およびwritecf
のデフォルト値:"min-overlapping-ratio"
lockcf
のデフォルト値:"by-compensated-size"
dynamic-level-bytes
- 動的レベルのバイトを最適化するかどうかを決定します
- デフォルト値:
true
num-levels
- RocksDB ファイルの最大レベル数
- デフォルト値:
7
max-bytes-for-level-multiplier
- 各レイヤーのデフォルトの増幅倍数
- デフォルト値:
10
compaction-style
- 圧縮方法
- オプションの値:
"level"
、"universal"
、"fifo"
- デフォルト値:
"level"
disable-auto-compactions
- 自動圧縮を無効にするかどうかを決定します。
- デフォルト値:
false
soft-pending-compaction-bytes-limit
- 保留中の圧縮バイトのソフト制限。
storage.flow-control.enable
がtrue
に設定されている場合、storage.flow-control.soft-pending-compaction-bytes-limit
はこの構成項目をオーバーライドします。 - デフォルト値:
"192GB"
- 単位: KB|MB|GB
hard-pending-compaction-bytes-limit
- 保留中の圧縮バイトのハード制限。
storage.flow-control.enable
がtrue
に設定されている場合、storage.flow-control.hard-pending-compaction-bytes-limit
はこの構成項目をオーバーライドします。 - デフォルト値:
"256GB"
- 単位: KB|MB|GB
enable-compaction-guard
- TiKVリージョンの境界で SST ファイルを分割するための最適化である圧縮ガードを有効または無効にします。この最適化は、圧縮 I/O を削減するのに役立ち、TiKV がより大きな SST ファイル サイズを使用できるようになり (したがって、SST ファイル全体が少なくなります)、同時にリージョンの移行時に古いデータを効率的にクリーンアップできます。
defaultcf
およびwritecf
のデフォルト値:true
lockcf
のデフォルト値:false
compaction-guard-min-output-file-size
- コンパクション ガードが有効な場合の SST ファイルの最小サイズ。この構成により、圧縮ガードが有効になっている場合に SST ファイルが小さすぎるのを防ぐことができます。
- デフォルト値:
"8MB"
- 単位: KB|MB|GB
compaction-guard-max-output-file-size
- コンパクション ガードが有効な場合の SST ファイルの最大サイズ。この構成により、圧縮ガードが有効になっている場合に SST ファイルが大きくなりすぎるのを防ぐことができます。この構成は、同じ列ファミリーの
target-file-size-base
をオーバーライドします。 - デフォルト値:
"128MB"
- 単位: KB|MB|GB
rocksdb.defaultcf.titan
に関連するConfiguration / コンフィグレーション項目rocksdb.defaultcf.titan
.
min-blob-size
- Blob ファイルに格納されている最小値。指定されたサイズより小さい値は LSM-Tree に格納されます。
- デフォルト値:
"1KB"
- 最小値:
0
- 単位: KB|MB|GB
blob-file-compression
- Blob ファイルで使用される圧縮アルゴリズム
- オプションの値:
"no"
、"snappy"
、"zlib"
、"bzip2"
、"lz4"
、"lz4hc"
、"zstd"
- デフォルト値:
"lz4"
blob-cache-size
- Blob ファイルのキャッシュ サイズ
- デフォルト値:
"0GB"
- 最小値:
0
- 単位: KB|MB|GB
min-gc-batch-size
- GC を 1 回実行するために必要な Blob ファイルの最小合計サイズ
- デフォルト値:
"16MB"
- 最小値:
0
- 単位: KB|MB|GB
max-gc-batch-size
- 一度に GC を実行できる Blob ファイルの最大合計サイズ
- デフォルト値:
"64MB"
- 最小値:
0
- 単位: KB|MB|GB
discardable-ratio
- Blob ファイルに対して GC がトリガーされる比率。 Blob ファイル内の無効な値の比率がこの比率を超える場合にのみ、GC 用に Blob ファイルを選択できます。
- デフォルト値:
0.5
- 最小値:
0
- 最大値:
1
sample-ratio
- GC 中にファイルをサンプリングしたときの (Blob ファイルから読み取られたデータ/Blob ファイル全体) の比率
- デフォルト値:
0.1
- 最小値:
0
- 最大値:
1
merge-small-file-threshold
- Blob ファイルのサイズがこの値よりも小さい場合でも、Blob ファイルが GC 用に選択されることがあります。この場合、
discardable-ratio
は無視されます。 - デフォルト値:
"8MB"
- 最小値:
0
- 単位: KB|MB|GB
blob-run-mode
- Titan の実行モードを指定します。
- オプションの値:
normal
: 値のサイズがmin-blob-size
を超えると、データを BLOB ファイルに書き込みます。read_only
: BLOB ファイルへの新しいデータの書き込みを拒否しますが、BLOB ファイルから元のデータを読み取ります。fallback
: blob ファイルのデータを LSM に書き戻します。
- デフォルト値:
normal
level-merge
- 読み取りパフォーマンスを最適化するかどうかを決定します。
level-merge
が有効な場合、より多くの書き込み増幅があります。 - デフォルト値:
false
gc-merge-rewrite
- マージ オペレーターを使用して、Titan GC の BLOB インデックスを書き戻すかどうかを決定します。
gc-merge-rewrite
を有効にすると、フォアグラウンドでの書き込みに対する Titan GC の影響が軽減されます。 - デフォルト値:
false
raftdb
raftdb
に関するConfiguration / コンフィグレーション項目
max-background-jobs
- RocksDB のバックグラウンド スレッドの数。 RocksDB スレッド プールのサイズを変更する場合は、 TiKV スレッド プールのパフォーマンス チューニングを参照してください。
- デフォルト値:
4
- 最小値:
2
max-sub-compactions
- RocksDB で実行される同時サブ圧縮操作の数
- デフォルト値:
2
- 最小値:
1
wal-dir
- WALファイルが保存されているディレクトリ
- デフォルト値:
"/tmp/tikv/store"
いかだエンジン
Raft Engineに関連するConfiguration / コンフィグレーション項目。
ノート:
- 初めてRaft Engineを有効にすると、TiKV はそのデータを RocksDB からRaft Engineに転送します。そのため、TiKV が起動するまでさらに数十秒待つ必要があります。
- TiDB v5.4.0 のRaft Engineのデータ形式は、以前の TiDB バージョンと互換性がありません。したがって、TiDB クラスターを v5.4.0 から以前のバージョンにダウングレードする必要がある場合は、ダウングレードする前に、
enable
からfalse
に設定してRaft Engineを無効にし、TiKV を再起動して構成を有効にします。
enable
- Raft Engineを使用してRaftログを保存するかどうかを決定します。有効にすると、
raftdb
の構成は無視されます。 - デフォルト値:
true
dir
- raft ログ ファイルが保存されるディレクトリ。ディレクトリが存在しない場合は、TiKV の起動時に作成されます。
- この構成が設定されていない場合は、
{data-dir}/raft-engine
が使用されます。 - マシンに複数のディスクがある場合、 Raft Engineのデータを別のディスクに保存して、TiKV のパフォーマンスを向上させることをお勧めします。
- デフォルト値:
""
batch-compression-threshold
- ログ バッチのしきい値サイズを指定します。この構成より大きいログ バッチは圧縮されます。この構成項目を
0
に設定すると、圧縮は無効になります。 - デフォルト値:
"8KB"
bytes-per-sync
- バッファリングされた書き込みの最大累積サイズを指定します。この設定値を超えると、バッファリングされた書き込みがディスクにフラッシュされます。
- この構成項目を
0
に設定すると、増分同期が無効になります。 - デフォルト値:
"4MB"
target-file-size
- ログ ファイルの最大サイズを指定します。ログ ファイルがこの値より大きい場合、ローテーションされます。
- デフォルト値:
"128MB"
purge-threshold
- メイン ログ キューのしきい値サイズを指定します。この設定値を超えると、メイン ログ キューが消去されます。
- この構成は、 Raft Engineのディスク容量の使用を調整するために使用できます。
- デフォルト値:
"10GB"
recovery-mode
- リカバリ中のファイルの破損に対処する方法を決定します。
- 値のオプション:
"absolute-consistency"
、"tolerate-tail-corruption"
、"tolerate-any-corruption"
- デフォルト値:
"tolerate-tail-corruption"
recovery-read-block-size
- リカバリ中にログ ファイルを読み取るための最小 I/O サイズ。
- デフォルト値:
"16KB"
- 最小値:
"512B"
recovery-threads
- ログ ファイルのスキャンと回復に使用されるスレッドの数。
- デフォルト値:
4
- 最小値:
1
memory-limit
- Raft Engineのメモリ使用量の制限を指定します。
- この構成値が設定されていない場合、使用可能なシステム メモリの 15% が使用されます。
- デフォルト値:
Total machine memory * 15%
安全
セキュリティに関するConfiguration / コンフィグレーション項目です。
ca-path
- CA ファイルのパス
- デフォルト値:
""
cert-path
- X.509 証明書を含む Privacy Enhanced Mail (PEM) ファイルのパス
- デフォルト値:
""
key-path
- X.509 キーを含む PEM ファイルのパス
- デフォルト値:
""
cert-allowed-cn
- クライアントによって提示された証明書で受け入れ可能な X.509 共通名のリスト。要求は、提示された共通名がリスト内のエントリの 1 つと完全に一致する場合にのみ許可されます。
- デフォルト値:
[]
。これは、クライアント証明書の CN チェックがデフォルトで無効になっていることを意味します。
redact-info-log
v4.0.8 の新機能
- この構成項目は、ログのリダクションを有効または無効にします。構成値が
true
に設定されている場合、ログ内のすべてのユーザー データは?
に置き換えられます。 - デフォルト値:
false
セキュリティ暗号化
保存時の暗号化 (TDE)に関するConfiguration / コンフィグレーション項目。
data-encryption-method
- データファイルの暗号化方式
- 値のオプション: "plaintext"、"aes128-ctr"、"aes192-ctr"、および "aes256-ctr"
- "plaintext" 以外の値は、暗号化が有効であることを意味します。この場合、マスター キーを指定する必要があります。
- デフォルト値:
"plaintext"
data-key-rotation-period
- TiKV がデータ暗号化キーをローテーションする頻度を指定します。
- デフォルト値:
7d
enable-file-dictionary-log
- TiKV が暗号化メタデータを管理するときに、I/O とミューテックスの競合を減らすための最適化を有効にします。
- この構成パラメーターが (デフォルトで) 有効になっている場合に起こりうる互換性の問題を回避するには、詳細について保存保存時の暗号化- TiKV バージョン間の互換性を参照してください。
- デフォルト値:
true
マスターキー
- 暗号化が有効な場合、マスター キーを指定します。マスター鍵の構成方法については、 保存保存時の暗号化化 - 暗号化の構成を参照してください。
以前のマスターキー
- 新しいマスター キーをローテーションするときに、古いマスター キーを指定します。設定フォーマットは
master-key
と同じです。マスター キーの構成方法については、 保存保存時の暗号化化 - 暗号化の構成を参照してください。
import
TiDB Lightningのインポートと BR の復元に関するConfiguration / コンフィグレーション項目です。
num-threads
- RPC リクエストを処理するスレッドの数
- デフォルト値:
8
- 最小値:
1
GC
enable-compaction-filter
v5.0 の新機能
- コンパクション フィルタ機能で GC を有効にするかどうかを制御します
- デフォルト値:
true
バックアップ
BRバックアップに関するConfiguration / コンフィグレーション項目です。
num-threads
- バックアップを処理するワーカー スレッドの数
- デフォルト値:
MIN(CPU * 0.5, 8)
- 値の範囲:
[1, CPU]
- 最小値:
1
enable-auto-tune
v5.4.0 の新機能
- クラスタ リソースの使用率が高い場合に、バックアップ タスクで使用されるリソースを制限してクラスタへの影響を軽減するかどうかを制御します。詳細については、 BR オートチューンを参照してください。
- デフォルト値:
true
s3-multi-part-size
v5.3.2 の新機能
ノート:
この構成は、S3 レート制限によって引き起こされるバックアップの失敗に対処するために導入されました。この問題はバックアップ データ ストレージ構造の改善で修正されました。したがって、この構成は v6.1.1 から廃止され、推奨されなくなりました。
- バックアップ中に S3 へのマルチパート アップロードを実行するときに使用されるパート サイズ。この設定の値を調整して、S3 に送信されるリクエストの数を制御できます。
- データが S3 にバックアップされ、バックアップ ファイルがこの構成項目の値よりも大きい場合、 マルチパートアップロードが自動的に有効になります。圧縮率に基づくと、96 MiBリージョンによって生成されるバックアップ ファイルは、約 10 MiB から 30 MiB です。
- デフォルト値: 5MiB
CDC
TiCDC に関連するConfiguration / コンフィグレーション項目。
min-ts-interval
- Resolved TS が計算されて転送される間隔。
- デフォルト値:
"1s"
old-value-cache-memory-quota
- TiCDC の古い値によるメモリ使用量の上限。
- デフォルト値:
512MB
sink-memory-quota
- TiCDC データ変更イベントによるメモリ使用量の上限。
- デフォルト値:
512MB
incremental-scan-speed-limit
- 履歴データがインクリメンタル スキャンされる最大速度。
- デフォルト値:
"128MB"
。これは、1 秒あたり 128 MB を意味します。
incremental-scan-threads
- 履歴データを増分スキャンするタスクのスレッド数。
- デフォルト値:
4
。これは 4 つのスレッドを意味します。
incremental-scan-concurrency
- 履歴データを増分スキャンするタスクの同時実行の最大数。
- デフォルト値:
6
。これは、最大で 6 つのタスクを同時に実行できることを意味します。 - 注:
incremental-scan-concurrency
の値はincremental-scan-threads
の値以上である必要があります。そうしないと、TiKV は起動時にエラーを報告します。
解決済み-TS
ステイル読み取り要求を処理するための解決済み TS の維持に関連するConfiguration / コンフィグレーション項目。
enable
- すべての地域の解決済み TS を維持するかどうかを決定します。
- デフォルト値:
true
advance-ts-interval
- Resolved TS が計算されて転送される間隔。
- デフォルト値:
"1s"
scan-lock-pool-size
- 解決済み TS を初期化するときに、TiKV が MVCC (マルチバージョン同時実行制御) ロック データをスキャンするために使用するスレッドの数。
- デフォルト値:
2
。これは 2 つのスレッドを意味します。
悲観的-txn
悲観的トランザクションの使用法については、 TiDB ペシミスティック トランザクション モードを参照してください。
wait-for-lock-timeout
- TiKV のペシミスティック トランザクションが、他のトランザクションがロックを解放するまで待機する最長時間。タイムアウトになると、TiDB にエラーが返され、TiDB はロックの追加を再試行します。ロック待機タイムアウトは
innodb_lock_wait_timeout
で設定されます。 - デフォルト値:
"1s"
- 最小値:
"1ms"
wake-up-delay-duration
- 悲観的なトランザクションがロックを解放すると、ロックを待っているすべてのトランザクションのうち、最小の
start_ts
のトランザクションのみが起こされます。他のトランザクションはwake-up-delay-duration
後に起こされます。 - デフォルト値:
"20ms"
pipelined
- この構成アイテムは、ペシミスティック ロックを追加するパイプライン プロセスを有効にします。この機能を有効にすると、データをロックできることを検出した後、TiKV は直ちに TiDB に通知して後続のリクエストを実行し、悲観的ロックを非同期で書き込みます。これにより、ほとんどのレイテンシーが短縮され、悲観的トランザクションのパフォーマンスが大幅に向上します。しかし、悲観的ロックの非同期書き込みが失敗する可能性はまだ低く、悲観的トランザクション コミットの失敗を引き起こす可能性があります。
- デフォルト値:
true
in-memory
(v6.0.0 の新機能)
- インメモリのペシミスティック ロック機能を有効にします。この機能を有効にすると、ペシミスティック トランザクションは、ロックをディスクに書き込んだり、ロックを他のレプリカに複製したりする代わりに、ロックをメモリに格納しようとします。これにより、悲観的なトランザクションのパフォーマンスが向上します。ただし、悲観的ロックが失われ、悲観的トランザクションのコミットが失敗する可能性はまだ低いです。
- デフォルト値:
true
in-memory
はpipelined
の値がtrue
の場合にのみ有効であることに注意してください。
クォータ
Quota Limiter に関連するConfiguration / コンフィグレーション項目。
TiKV がデプロイされているマシンのリソースが限られているとします (たとえば、4v CPU と 16 G メモリのみ)。この状況では、TiKV のフォアグラウンドが処理する読み取りおよび書き込み要求が多すぎるため、バックグラウンドで使用される CPU リソースがそのような要求の処理を支援するために占有され、TiKV のパフォーマンスの安定性に影響を与える可能性があります。この状況を回避するには、クォータ関連の構成項目を使用して、フォアグラウンドで使用される CPU リソースを制限します。リクエストが Quota Limiter をトリガーすると、リクエストは TiKV が CPU リソースを解放するまでしばらく待機する必要があります。正確な待機時間はリクエストの数によって異なり、最大待機時間はmax-delay-duration
の値を超えません。
foreground-cpu-time
(v6.0.0 の新機能)
- TiKV フォアグラウンドが読み取りおよび書き込み要求を処理するために使用する CPU リソースのソフト制限。
- デフォルト値:
0
(制限なし) - 単位: millicpu (たとえば、
1500
は、フォアグラウンド リクエストが 1.5v CPU を消費することを意味します)
foreground-write-bandwidth
(v6.0.0 の新機能)
- トランザクションがデータを書き込む帯域幅のソフト リミット。
- デフォルト値:
0KB
(制限なし)
foreground-read-bandwidth
(v6.0.0 の新機能)
- トランザクションとコプロセッサーがデータを読み取る帯域幅のソフト制限。
- デフォルト値:
0KB
(制限なし)
max-delay-duration
(v6.0.0 の新機能)
- 単一の読み取りまたは書き込み要求が、フォアグラウンドで処理されるまで強制的に待機される最大時間。
- デフォルト値:
500ms
causal-ts v6.1.0 の新機能
TiKV API V2 が有効な場合のタイムスタンプの取得に関連するConfiguration / コンフィグレーション項目 ( storage.api-version = 2
)。
書き込みレイテンシーを短縮し、PD への頻繁なアクセスを回避するために、TiKV はローカルにタイムスタンプのバッチを定期的にフェッチしてキャッシュします。ローカルにキャッシュされたタイムスタンプが使い果たされると、TiKV はすぐにタイムスタンプ リクエストを行います。この状況では、一部の書き込みリクエストのレイテンシーが増加します。この状況の発生を減らすために、TiKV はワークロードに応じてローカルにキャッシュされたタイムスタンプのサイズを動的に調整します。ほとんどの場合、次のパラメータを調整する必要はありません。
renew-interval
- ローカルにキャッシュされたタイムスタンプが更新される間隔。
renew-interval
の間隔で、TiKV はタイムスタンプの更新のバッチを開始し、前の期間のタイムスタンプの消費に従ってキャッシュされたタイムスタンプの数を調整します。このパラメータを大きすぎる値に設定すると、最新の TiKV ワークロードの変更が時間内に反映されません。このパラメータを小さすぎる値に設定すると、PD の負荷が増加します。書き込みトラフィックが激しく変動する場合、タイムスタンプが頻繁に使い尽くされる場合、および書き込みレイテンシーが増加する場合は、このパラメーターをより小さな値に設定できます。同時に、PD の負荷も考慮する必要があります。- デフォルト値:
"100ms"
renew-batch-min-size
- ローカルにキャッシュされたタイムスタンプの最小数。
- TiKV は、前の期間のタイムスタンプの消費に応じて、キャッシュされたタイムスタンプの数を調整します。ローカルにキャッシュされたタイムスタンプの使用率が低い場合、TiKV はキャッシュされたタイムスタンプの数を
renew-batch-min-size
に達するまで徐々に減らします。アプリケーションで大量のバースト書き込みトラフィックが頻繁に発生する場合は、必要に応じてこのパラメーターをより大きな値に設定できます。このパラメーターは、単一の tikv サーバーのキャッシュ サイズであることに注意してください。パラメーターを大きすぎる値に設定し、クラスターに多くの tikv サーバーが含まれている場合、TSO の消費が速すぎます。 - Grafana のTiKV-RAW > Causal timestampパネルでは、 TSO バッチ サイズは、アプリケーションのワークロードに従って動的に調整された、ローカルにキャッシュされたタイムスタンプの数です。このメトリックを参照して調整できます
renew-batch-min-size
。 - デフォルト値:
100