TiKVコンフィグレーションファイル
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-log-fileで設定したログファイルに出力されます。 - デフォルト値:
""
slow-log-threshold
- スローログを出力する閾値。処理時間がこの閾値よりも長い場合、スローログが出力されます。
- デフォルト値:
"1s"
memory-usage-limit
TiKVインスタンスのメモリ使用量の制限。TiKVのメモリ使用量がこのしきい値に近づくと、内部キャッシュが削除され、メモリが解放されます。
ほとんどの場合、TiKVインスタンスは利用可能なシステムメモリ全体の75%を使用するように設定されているため、この設定項目を明示的に指定する必要はありません。残りの25%のメモリはOSのページキャッシュ用に予約されています。詳細は
storage.block-cache.capacityご覧ください。単一の物理マシンに複数のTiKVノードをデプロイする場合でも、この設定項目を設定する必要はありません。この場合、TiKVインスタンスはメモリを
5/3 * block-cache.capacity使用します。さまざまなシステムメモリ容量の既定値は次のとおりです。
- システム=8G ブロックキャッシュ=3.6G メモリ使用量制限=6G ページキャッシュ=2G
- システム=16G ブロックキャッシュ=7.2G メモリ使用量制限=12G ページキャッシュ=4G
- システム=32G ブロックキャッシュ=14.4G メモリ使用量制限=24G ページキャッシュ=8G
ログv5.4.0 の新機能
ログに関するコンフィグレーション項目。
v5.4.0以降、TiKVとTiDBのログ設定項目の整合性を保つため、TiKVは以前の設定項目
log-rotation-timespan廃止し、log-levellog-file以下の設定log-formatに変更log-rotation-sizeました。以前の設定項目のみを設定し、その値をデフォルト以外の値に設定した場合、以前の設定項目は新しい設定項目と互換性を保ちます。以前の設定項目と新しい設定項目の両方を設定した場合、新しい設定項目が有効になります。
level v5.4.0 の新機能
- ログレベル
"warn""fatal""error""debug""info"- デフォルト値:
"info"
format v5.4.0 の新機能
- ログ形式
- オプション
"text":"json" - デフォルト値:
"text"
enable-timestamp v5.4.0 の新機能
- ログ内のタイムスタンプを有効にするか無効にするかを決定します
- オプション
false:true - デフォルト値:
true
log.file v5.4.0 の新機能
- ログ ファイルに関連するコンフィグレーション項目。
filename v5.4.0 の新機能
- ログファイル。この設定項目が設定されていない場合、ログはデフォルトで「stderr」に出力されます。この設定項目が設定されている場合、ログは対応するファイルに出力されます。
- デフォルト値:
""
max-sizeバージョン5.4.0の新機能
- ログファイルの最大サイズ。ファイルサイズがこの設定項目で設定された値より大きい場合、システムは自動的に1つのファイルを複数のファイルに分割します。
- デフォルト値:
300 - 最大値:
4096 - 単位: MiB
max-days v5.4.0 の新機能
- TiKV がログ ファイルを保持する最大日数。
- 構成項目が設定されていない場合、またはその値がデフォルト値
0に設定されている場合、TiKV はログ ファイルを消去しません。 - パラメータが
0以外の値に設定されている場合、TiKV はmax-days後に期限切れのログ ファイルをクリーンアップします。
- 構成項目が設定されていない場合、またはその値がデフォルト値
- デフォルト値:
0
max-backupsバージョン5.4.0の新機能
- TiKV が保持するログ ファイルの最大数。
- 構成項目が設定されていない場合、またはその値がデフォルト値
0に設定されている場合、TiKV はすべてのログ ファイルを保持します。 - 設定項目が
0以外の値に設定されている場合、TiKVは最大でmax-backupsで指定された数の古いログファイルを保持します。たとえば、値が7に設定されている場合、TiKVは最大で 7 個の古いログファイルを保持します。
- 構成項目が設定されていない場合、またはその値がデフォルト値
- デフォルト値:
0
サーバー
- サーバーに関連するコンフィグレーション項目。
addr
- リスニングIPアドレスとリスニングポート
- デフォルト値:
"127.0.0.1:20160"
advertise-addr
- クライアント通信のリスニングアドレスをアドバタイズする
- この構成項目が設定されていない場合は、値
addrが使用されます。 - デフォルト値:
""
status-addr
構成項目は、
HTTPアドレスを通じてTiKVステータスを直接報告します。ステータス アドレスを無効にするには、値を
""に設定します。デフォルト値:
"127.0.0.1:20180"
status-thread-pool-size
HTTPAPI サービスのワーカースレッドの数- デフォルト値:
1 - 最小値:
1
grpc-compression-type
gRPCメッセージの圧縮アルゴリズム。TiKVノード間のgRPCメッセージに影響します。v6.5.11、v7.1.6、v7.5.3、v8.1.1、v8.2.0以降では、TiKVからTiDBに送信されるgRPC応答メッセージにも影響します。
"deflate""gzip":"none"注記:
TiDBは
"deflate"サポートしていません。そのため、TiKVからTiDBに送信されるgRPC応答メッセージを圧縮したい場合は、この設定項目を"gzip"に設定してください。デフォルト値:
"none"
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 ストリームのウィンドウサイズ
- デフォルト値:
2MiB - 単位: KiB|MiB|GiB
- 最小値:
"1KiB"
grpc-keepalive-time
- gRPCが
keepalivePingメッセージを送信する時間間隔 - デフォルト値:
"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"
end-point-memory-quota v8.2.0 の新機能
- TiKVコプロセッサー要求が使用できるメモリの最大量。この制限を超えると、後続のコプロセッサー要求は「サーバーがビジーです」というエラーで拒否されます。
- デフォルト値: システムメモリ全体の 45%。システムメモリ全体の 45% が 500 MiB を超える場合、デフォルト値は 500 MiB になります。
snap-io-max-bytes-per-sec
- スナップショット処理時の最大許容ディスク帯域幅
- デフォルト値:
"100MiB" - 単位: KiB|MiB|GiB
- 最小値:
"1KiB"
snap-min-ingest-size v8.1.2 の新機能
TiKV がスナップショットを処理するときに取り込み方式を採用するかどうかの最小しきい値を指定します。
- スナップショットのサイズがこのしきい値を超えると、TiKVはスナップショットからSSTファイルをRocksDBにインポートするインジェスト方式を採用します。この方式は、大きなファイルの場合、より高速です。
- スナップショットのサイズがこのしきい値を超えない場合、TiKVは直接書き込み方式を採用し、各データをRocksDBに個別に書き込みます。この方式は、小さなファイルの場合により効率的です。
デフォルト値:
"2MiB"単位: KiB|MiB|GiB
最小値:
0
enable-request-batch
- リクエストをバッチで処理するかどうかを決定します
- デフォルト値:
true
labels
{ zone = "us-west-1", disk = "ssd" }などのサーバー属性を指定します。- デフォルト値:
{}
background-thread-count
- エンドポイント スレッド、 BRスレッド、分割チェック スレッド、リージョンスレッド、および遅延に影響されないタスクのその他のスレッドを含む、バックグラウンド プールの作業スレッド数。
- デフォルト値: CPU コアの数が 16 未満の場合、デフォルト値は
2です。それ以外の場合、デフォルト値は3です。
end-point-slow-log-threshold
- TiDBのプッシュダウンリクエストがスローログを出力するまでの時間閾値。処理時間がこの閾値を超えると、スローログが出力されます。
- デフォルト値:
"1s" - 最小値:
0
raft-client-queue-size
- TiKVにおけるRaftメッセージのキューサイズを指定します。時間内に送信されないメッセージが多すぎるとバッファがいっぱいになったり、メッセージが破棄されたりする場合は、システムの安定性を向上させるために、より大きな値を指定できます。
- デフォルト値:
16384
simplify-metrics v6.2.0 の新機能
- 返される監視メトリックを簡素化するかどうかを指定します。値を
trueに設定すると、TiKV は一部のメトリックを除外することで、各リクエストに対して返されるデータの量を削減します。 - デフォルト値:
false
forward-max-connections-per-addressバージョン 5.0.0 の新機能
- サービスとサーバーへのリクエスト転送用の接続プールのサイズを設定します。値が小さすぎると、リクエストのレイテンシーと負荷分散に影響します。
- デフォルト値:
4
読み取りプール.統合
読み取りリクエストを処理する単一スレッドプールに関するコンフィグレーション項目。このスレッドプールは、バージョン4.0以降、従来のstorageスレッドプールとコプロセッサスレッドプールに代わるものです。
min-thread-count
- 統合読み取りプールの最小作業スレッド数
- デフォルト値:
1
max-thread-count
- 統合読み取りプールまたはUnifyReadPoolスレッドプールの最大作業スレッド数。このスレッドプールのサイズを変更する場合は、 TiKV スレッドプールのパフォーマンスチューニングを参照してください。
- 値の範囲:
[min-thread-count, MAX(4, CPU quota * 10)]。MAX(4, CPU quota * 10)4とCPU quota * 10うち大きい方の値を取得します。 - デフォルト値: MAX(4, CPU * 0.8)
注記:
スレッド数を増やすとコンテキストスイッチが増加し、パフォーマンスが低下する可能性があります。この設定項目の値を変更することは推奨されません。
stack-size
- 統合スレッドプール内のスレッドのスタックサイズ
- タイプ: 整数 + 単位
- デフォルト値:
"10MiB" - 単位: KiB|MiB|GiB
- 最小値:
"2MiB" - 最大値: システムで実行された
ulimit -sHコマンドの結果出力される K バイト数。
max-tasks-per-worker
- 統合読み取りプール内の 1 つのスレッドに許可されるタスクの最大数。値を超えると
Server Is Busyが返されます。 - デフォルト値:
2000 - 最小値:
2
auto-adjust-pool-size v6.3.0 の新機能
- スレッドプールサイズを自動調整するかどうかを制御します。有効にすると、現在のCPU使用率に基づいてUnifyReadPoolスレッドプールサイズを自動調整することで、TiKVの読み取りパフォーマンスが最適化されます。スレッドプールの指定可能な範囲は
[max-thread-count, MAX(4, CPU)]です。最大値はmax-thread-countと同じです。 - デフォルト値:
false
読み取りプール。storage
storageスレッド プールに関連するコンフィグレーション項目。
use-unified-pool
- storageリクエストに統合スレッドプール(
readpool.unifiedで設定)を使用するかどうかを決定します。このパラメータの値がfalse場合、このセクションの残りのパラメータ(readpool.storage)で設定された別のスレッドプールが使用されます。 - デフォルト値: このセクション(
readpool.storage)に他の設定がない場合、デフォルト値はtrueです。それ以外の場合は、下位互換性のため、デフォルト値はfalseです。このオプションを有効にする前に、必要に応じてreadpool.unifiedの設定を変更してください。
high-concurrency
- 高優先度
readリクエストを処理する同時スレッドの許容数 8≤cpu num≤16の場合、デフォルト値はcpu_num * 0.5です。9cpu num8より小さい場合、デフォルト値は4です。1516cpu num場合、デフォルト値は8です。- 最小値:
1
normal-concurrency
- 通常優先度
readリクエストを処理できる同時スレッドの許容数 8≤cpu num≤16の場合、デフォルト値はcpu_num * 0.5です。9cpu num8より小さい場合、デフォルト値は4です。1516cpu num場合、デフォルト値は8です。- 最小値:
1
low-concurrency
- 低優先度
readリクエストを処理する同時スレッドの許容数 8≤cpu num≤16の場合、デフォルト値はcpu_num * 0.5です。9cpu num8より小さい場合、デフォルト値は4です。1516cpu num場合、デフォルト値は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
- ストレージ読み取りスレッドプール内のスレッドのスタックサイズ
- タイプ: 整数 + 単位
- デフォルト値:
"10MiB" - 単位: KiB|MiB|GiB
- 最小値:
"2MiB" - 最大値: システムで実行された
ulimit -sHコマンドの結果出力される K バイト数。
readpool.coprocessor
コプロセッサースレッド プールに関連するコンフィグレーション項目。
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
- コプロセッサースレッドプール内のスレッドのスタックサイズ
- タイプ: 整数 + 単位
- デフォルト値:
"10MiB" - 単位: KiB|MiB|GiB
- 最小値:
"2MiB" - 最大値: システムで実行された
ulimit -sHコマンドの結果出力される K バイト数。
storage
storageに関するコンフィグレーション項目。
data-dir
- RocksDBディレクトリのstorageパス
- デフォルト値:
"./"
engine v6.6.0 の新機能
エンジンの種類を指定します。この設定は新しいクラスターを作成するときにのみ指定でき、一度指定した後は変更できません。
デフォルト値:
"raft-kv"値のオプション:
"raft-kv": TiDB v6.6.0 より前のバージョンのデフォルトのエンジン タイプ。"partitioned-raft-kv": TiDB v6.6.0 で導入された新しいstorageエンジン タイプ。
scheduler-concurrency
- メモリロック機構を内蔵し、キーの同時操作を防止します。各キーには異なるスロットにハッシュが保存されています。
- デフォルト値:
524288 - 最小値:
1
scheduler-worker-pool-size
- スケジューラスレッドプール内のスレッド数。スケジューラスレッドは主に、データ書き込み前のトランザクションの整合性チェックに使用されます。CPUコア数が
16以上の場合、デフォルト値は8です。それ以外の場合、デフォルト値は4です。スケジューラスレッドプールのサイズを変更する場合は、 TiKV スレッドプールのパフォーマンスチューニングを参照してください。 - デフォルト値:
4 - 値の範囲:
[1, MAX(4, CPU)]。MAX(4, CPU)場合、CPUCPU コアの数を意味します。MAX(4, CPU)4とCPUうち大きい方の値になります。
scheduler-pending-write-threshold
- 書き込みキューの最大サイズ。この値を超えると、TiKVへの新しい書き込みに対して
Server Is Busyエラーが返されます。 - デフォルト値:
"100MiB" - 単位: MiB|GiB
enable-async-apply-prewrite
- 非同期コミットトランザクションが、事前書き込みリクエストを適用する前にTiKVクライアントに応答するかどうかを決定します。この設定項目を有効にすると、適用期間が長い場合にレイテンシーを簡単に短縮したり、適用期間が安定していない場合に遅延ジッターを削減したりできます。
- デフォルト値:
false
reserve-space
- TiKVを起動すると、ディスク保護のためディスク上に一定のスペースが予約されます。ディスク残量が予約済みスペースを下回ると、TiKVは一部の書き込み操作を制限します。予約済みスペースは2つの部分に分かれており、予約済みスペースの80%はディスク容量不足時の操作に必要な追加ディスクスペースとして使用され、残りの20%は一時ファイルの保存に使用されます。スペース回収プロセスにおいて、余分なディスク容量の使用によりstorageが枯渇した場合、この一時ファイルはサービスを復旧するための最後の保護として機能します。
- 一時ファイルの名前は
space_placeholder_fileで、ディレクトリstorage.data-dirにあります。TiKV のディスク容量が不足してオフラインになった場合、TiKV を再起動すると、一時ファイルは自動的に削除され、TiKV は空き容量の確保を試みます。 - 残り容量が不足している場合、TiKVは一時ファイルを作成しません。保護の有効性は、確保された領域のサイズに依存します。確保された領域のサイズは、ディスク容量の5%とこの設定値のいずれか大きい方の値になります。この設定項目の値が
"0MiB"の場合、TiKVはこのディスク保護機能を無効にします。 - デフォルト値:
"5GiB" - 単位: MiB|GiB
enable-ttl
- TTLは「Time to live(存続時間)」の略です。この項目を有効にすると、TiKVはTTLに達したデータを自動的に削除します。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に陥ります。
- デフォルト値: 1時間
api-version v6.1.0 の新機能
- TiKV が RawKV ストアとして機能する場合に TiKV によって使用されるstorage形式とインターフェース バージョン。
- 値のオプション:
1: API V1を使用し、クライアントから渡されたデータをエンコードせずにそのまま保存します。v6.1.0より前のバージョンでは、TiKVはデフォルトでAPI V1を使用します。2: API V2 を使用します:- データはマルチバージョン同時実行制御 (MVCC)形式で保存され、タイムスタンプは tikv-server によって PD (TSO) から取得されます。
- データはさまざまな使用方法に応じてスコープが設定され、API V2 は単一クラスター内での TiDB、トランザクション KV、および RawKV アプリケーションの共存をサポートします。
- 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のクライアントの対応するマニュアルを参照してください。
- v6.2.0以降、RawKVの変更データキャプチャ(CDC)がサポートされました生のKV CDCを参照してください。
- デフォルト値:
1
- API V1とAPI V2はstorage形式が異なります。TiKVにTiDBデータのみが含まれている場合のみ、 API V2を直接有効化または無効化できます。それ以外の場合は、新しいクラスターをデプロイし、 RawKV バックアップと復元使用してデータを移行する必要があります。
- API V2 を有効にした後は、TiKV クラスターを v6.1.0 より前のバージョンにダウングレードすることはできません。ダウングレードすると、データ破損が発生する可能性があります。
txn-status-cache-capacity v7.6.0 の新機能
- TiKVのトランザクションステータスキャッシュの容量を設定します。このパラメータは変更しないでください。
- デフォルト値:
5120000
storage.block-cache
複数の RocksDBカラムファミリ (CF) 間でのブロックキャッシュの共有に関連するコンフィグレーション項目。
capacity
共有ブロックキャッシュのサイズ。
デフォルト値:
storage.engine="raft-kv"場合、デフォルト値はシステムメモリの合計サイズの 45% になります。storage.engine="partitioned-raft-kv"場合、デフォルト値はシステムメモリの合計サイズの 30% になります。
単位: KiB|MiB|GiB
low-pri-pool-ratio v8.0.0 の新機能
- Titanコンポーネントが使用できるブロックキャッシュ全体の割合を制御します。
- デフォルト値:
0.2
storage.フロー制御
TiKVのフロー制御メカニズムに関するコンフィグレーション項目。このメカニズムはRocksDBの書き込みストールメカニズムに代わるもので、スケジューラレイヤーでフローを制御することで、 RaftstoreまたはApplyスレッドのスタックによる二次災害を回避します。
enable
- フロー制御メカニズムを有効にするかどうかを決定します。有効にすると、TiKVはKvDBの書き込みストールメカニズムとRaftDB(memtableを除く)の書き込みストールメカニズムを自動的に無効にします。
- デフォルト値:
true
memtables-threshold
- kvDB memtableの数がこのしきい値に達すると、フロー制御メカニズムが動作を開始します。1
enabletrueに設定すると、この設定項目はrocksdb.(defaultcf|writecf|lockcf).max-write-buffer-numberオーバーライドします。 - デフォルト値:
5
l0-files-threshold
- kvDB L0ファイルの数がこのしきい値に達すると、フロー制御メカニズムが作動を開始します。1
enabletrueに設定すると、この設定項目はrocksdb.(defaultcf|writecf|lockcf).level0-slowdown-writes-triggerオーバーライドします。 - デフォルト値:
20
soft-pending-compaction-bytes-limit
- KvDB内の保留中の圧縮バイトがこのしきい値に達すると、フロー制御メカニズムは一部の書き込み要求を拒否し、
ServerIsBusyエラーを報告します。3enabletrueに設定すると、この設定項目はrocksdb.(defaultcf|writecf|lockcf).soft-pending-compaction-bytes-limitオーバーライドします。 - デフォルト値:
"192GiB"
hard-pending-compaction-bytes-limit
- KvDB内の保留中の圧縮バイトがこのしきい値に達すると、フロー制御メカニズムはすべての書き込み要求を拒否し、
ServerIsBusyエラーを報告します。3enabletrueに設定すると、この設定項目はrocksdb.(defaultcf|writecf|lockcf).hard-pending-compaction-bytes-limitオーバーライドします。 - デフォルト値:
"1024GiB"
storage.io レート制限
I/O レート リミッターに関連するコンフィグレーション項目。
max-bytes-per-sec
- サーバーがディスクに1秒間に書き込む、またはディスクから読み取ることができる最大I/Oバイト数を制限します(以下の
modeの設定項目によって決定されます)。この制限に達すると、TiKVはフォアグラウンド操作よりもバックグラウンド操作のスロットリングを優先します。この設定項目の値は、ディスクの最適なI/O帯域幅(例えば、クラウドディスクベンダーが指定する最大I/O帯域幅)に設定する必要があります。この設定値を0に設定すると、ディスクI/O操作は制限されません。 - デフォルト値:
"0MiB"
mode
- どのタイプのI/O操作をカウントし、しきい値
max-bytes-per-sec未満に制限するかを決定します。現在、書き込み専用モードのみがサポートされています。 "all-io""write-only"オプション:"read-only"- デフォルト値:
"write-only"
日付
enable-forwarding v5.0.0 の新機能
- ネットワーク分離の可能性がある場合に、TiKV の PD クライアントがフォロワー経由でリーダーにリクエストを転送するかどうかを制御します。
- デフォルト値:
false - 環境に分離されたネットワークが存在する可能性がある場合は、このパラメータを有効にすると、サービスが利用できない期間を短縮できます。
- 分離、ネットワークの中断、またはダウンタイムが発生したかどうかを正確に判断できない場合、このメカニズムを使用すると誤判断のリスクがあり、可用性とパフォーマンスの低下につながります。ネットワーク障害が発生していない場合は、このパラメータを有効にすることは推奨されません。
endpoints
- PDのエンドポイント。複数のエンドポイントを指定する場合は、カンマで区切る必要があります。
- デフォルト値:
["127.0.0.1:2379"]
retry-interval
- PD 接続を再試行する間隔。
- デフォルト値:
"300ms"
retry-log-every
- PDクライアントがエラーを検知した際にエラー報告をスキップする頻度を指定します。例えば、値が
5の場合、PDクライアントはエラーを検知した後、4回ごとにエラー報告をスキップし、5回ごとにエラーを報告します。 - この機能を無効にするには、値を
1に設定します。 - デフォルト値:
10
retry-max-count
- PD接続の初期化を再試行する最大回数
- 再試行を無効にするには、値を
0に設定します。再試行回数の制限を解除するには、値を-1に設定します。 - デフォルト値:
-1
ラフトストア
Raftstoreに関連するコンフィグレーション項目。
prevote
prevote有効または無効にします。この機能を有効にすると、ネットワークパーティションからの回復後にシステムのジッターが軽減されます。- デフォルト値:
true
capacity
- storage容量。これは、データを保存できる最大サイズです。1
capacity指定しない場合は、現在のディスクの容量が優先されます。同じ物理ディスクに複数のTiKVインスタンスをデプロイするには、このパラメータをTiKV設定に追加します。詳細については、 ハイブリッド展開の主なパラメータ参照してください。 - デフォルト値:
0 - 単位: KiB|MiB|GiB
raftdb-path
- Raftライブラリへのパス(デフォルトでは
storage.data-dir/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
- 単一メッセージパケットのサイズに対するソフト制限
- デフォルト値:
"1MiB" - 最小値:
0より大きい - 最大値:
3GiB - 単位: KiB|MiB|GiB
raft-max-inflight-msgs
- 確認するRaftログの数。この数を超えると、 Raftステートマシンはログの送信速度を低下させます。
- デフォルト値:
256 - 最小値:
0より大きい - 最大値:
16384
raft-entry-max-size
- 単一ログの最大サイズに対するハード制限
- デフォルト値:
"8MiB" - 最小値:
0 - 単位: MiB|GiB
raft-log-compact-sync-intervalバージョン5.3の新機能
- 不要なRaftログを圧縮する時間間隔
- デフォルト値:
"2s" - 最小値:
"0s"
raft-log-gc-tick-interval
- Raftログを削除するポーリング タスクがスケジュールされる時間間隔。1
0、この機能が無効であることを意味します。 - デフォルト値:
"3s" - 最小値:
"0s"
raft-log-gc-threshold
- 残存Raftログの最大許容数に関するソフト制限
- デフォルト値:
50 - 最小値:
1
raft-log-gc-count-limit
- 許容される残存Raftログ数のハードリミット
- デフォルト値: 3/4リージョンサイズに収容できるログ数 (ログ 1 つあたり 1MiB として計算)
- 最小値:
0
raft-log-gc-size-limit
- 残余Raftの許容サイズに関する厳密な制限
- デフォルト値:リージョンサイズの3/4
- 最小値:
0より大きい
raft-log-reserve-max-ticksバージョン5.3の新機能
- この設定項目で設定されたティック数が経過した後、残りのRaftログの数が
raft-log-gc-thresholdで設定された値に達していなくても、TiKV はこれらのログに対してガベージコレクション(GC) を実行します。 - デフォルト値:
6 - 最小値:
0より大きい
raft-engine-purge-interval
- ディスク容量をできるだけ早く再利用するために、古いTiKVログファイルをパージする間隔。RaftRaftは交換可能なコンポーネントであるため、一部の実装ではパージ処理が必要になります。
- デフォルト値:
"10s"
raft-entry-cache-life-time
- メモリ内のログキャッシュに許容される最大残り時間
- デフォルト値:
"30s" - 最小値:
0
max-apply-unpersisted-log-limitバージョン8.1.0の新機能
適用できるコミット済みだが永続化されていないRaftログの最大数。
- この設定項目を
0より大きい値に設定すると、TiKVノードはコミット済みだが永続化されていないRaftログを事前に適用できるようになり、そのノードにおけるIOジッターによるロングテールレイテンシーを効果的に削減します。ただし、TiKVのメモリ使用量とRaftログが占有するディスク容量が増加する可能性があります。 - この設定項目を
0に設定すると、この機能は無効になります。つまり、TiKVはRaftログがコミットされ、永続化されるまで待機してから、ログを適用する必要があります。この動作は、v8.2.0より前の動作と一致しています。
- この設定項目を
デフォルト値:
1024最小値:
0
hibernate-regions
- リージョンの休止状態を有効または無効にします。このオプションを有効にすると、長時間アイドル状態になっているリージョンは自動的に休止状態に設定されます。これにより、アイドル状態のリージョンにおけるRaftリーダーとフォロワー間のハートビートメッセージによって発生する余分なオーバーヘッドが軽減されます。1
peer-stale-state-check-interval指定すると、休止状態のリージョンにおけるリーダーとフォロワー間のハートビート間隔を変更できます。 - デフォルト値: v5.0.2 以降では
true、v5.0.2 より前のバージョンではfalse
split-region-check-tick-interval
- リージョン分割が必要かどうかを確認する間隔を指定します。1
0、この機能が無効であることを意味します。 - デフォルト値:
"10s" - 最小値:
0
region-split-check-diff
- リージョン分割前にリージョンデータが超過できる最大値
- デフォルト値:リージョンサイズの 1/16。
- 最小値:
0
region-compact-check-interval
- RocksDB 圧縮を手動でトリガーする必要があるかどうかを確認する時間間隔。1
0、この機能が無効であることを意味します。 - デフォルト値:
"5m" - 最小値:
0
region-compact-check-step
手動圧縮の各ラウンドで一度にチェックされる領域の数
デフォルト値:
storage.engine="raft-kv"場合、デフォルト値は100です。storage.engine="partitioned-raft-kv"場合、デフォルト値は5です。
最小値:
0
region-compact-min-tombstones
- RocksDBの圧縮をトリガーするために必要な墓石の数
- デフォルト値:
10000 - 最小値:
0
region-compact-tombstones-percent
- RocksDBの圧縮をトリガーするために必要な墓石の割合
- デフォルト値:
30 - 最小値:
1 - 最大値:
100
region-compact-min-redundant-rowsバージョン7.1.0の新機能
- RocksDB 圧縮をトリガーするために必要な冗長 MVCC 行の数。
- デフォルト値:
50000 - 最小値:
0
region-compact-redundant-rows-percent v7.1.0 の新機能
- RocksDB 圧縮をトリガーするために必要な冗長 MVCC 行の割合。
- デフォルト値:
20 - 最小値:
1 - 最大値:
100
report-region-buckets-tick-interval v6.1.0 の新機能
enable-region-bucketが true の場合、TiKV がバケット情報を PD に報告する間隔。- デフォルト値:
10s
pd-heartbeat-tick-interval
- PD へのリージョンのハートビートがトリガーされる時間間隔。1
0、この機能が無効であることを意味します。 - デフォルト値:
"1m" - 最小値:
0
pd-store-heartbeat-tick-interval
- ストアの PD へのハートビートがトリガーされる時間間隔。1
0、この機能が無効であることを意味します。 - デフォルト値:
"10s" - 最小値:
0
pd-report-min-resolved-ts-intervalバージョン7.6.0の新機能
注記:
この設定項目は
report-min-resolved-ts-intervalから名前が変更されました。v7.6.0以降、report-min-resolved-ts-interval無効になりました。
- TiKVがPDリーダーに解決済みTSを報告する最小間隔を指定します
0に設定すると、報告は無効になります。 - デフォルト値:
"1s"(正の最小値)。v6.3.0より前のバージョンでは、デフォルト値は"0s"です。 - 最小値:
0 - 単位: 秒
snap-mgr-gc-tick-interval
- 期限切れのスナップショット ファイルのリサイクルがトリガーされる時間間隔。1
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がロックカラムファミリーの手動圧縮をトリガーする時間間隔
- デフォルト値:
"10m" - 最小値:
0
lock-cf-compact-bytes-threshold
- TiKVがロックカラムファミリーの手動圧縮をトリガーするサイズ
- デフォルト値:
"256MiB" - 最小値:
0 - 単位: MiB
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
- インポートしたスナップショットファイルをディスクに書き込むときに必要なメモリキャッシュサイズ
- デフォルト値:
"10MiB" - 最小値:
0 - 単位: MiB
consistency-check-interval
- 整合性チェックがトリガーされる時間間隔。1
0、この機能が無効であることを意味します。 - デフォルト値:
"0s" - 最小値:
0
raft-store-max-leader-lease
- Raftリーダーの最も長い信頼期間
- デフォルト値:
"9s" - 最小値:
0
right-derive-when-split
- リージョンを分割する際、新しいリージョンの開始キーを指定します。この設定項目を
trueに設定すると、開始キーは最大分割キーになります。この設定項目をfalseに設定すると、開始キーは元のリージョンの開始キーになります。 - デフォルト値:
true
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 ファイルをチェックする時間間隔。1
0、この機能が無効であることを意味します。 - デフォルト値:
"10m" - 最小値:
0
local-read-batch-size
- 1バッチで処理される読み取り要求の最大数
- デフォルト値:
1024 - 最小値:
0より大きい
apply-yield-write-size v6.4.0 の新機能
- 適用スレッドが1回のポーリングで1つのFSM(有限状態機械)に書き込める最大バイト数。これはソフトリミットです。
- デフォルト値:
"32KiB" - 最小値:
0より大きい - 単位: KiB|MiB|GiB
apply-max-batch-size
- Raftステートマシンは、BatchSystemによってデータ書き込みリクエストをバッチ処理します。この設定項目は、1バッチでリクエストを処理できるRaftステートマシンの最大数を指定します。
- デフォルト値:
256 - 最小値:
0より大きい - 最大値:
10240
apply-pool-size
- ディスクにデータをフラッシュするプール内のスレッドの許容数。これはApplyスレッドプールのサイズです。このスレッドプールのサイズを変更する場合は、 TiKV スレッドプールのパフォーマンスチューニングを参照してください。
- デフォルト値:
2 - 値の範囲:
[1, CPU * 10]CPUCPU コアの数を意味します。
store-max-batch-size
- Raftステートマシンは、BatchSystemによってログをディスクにフラッシュするリクエストをバッチ処理します。この設定項目は、1回のバッチでリクエストを処理できるRaftステートマシンの最大数を指定します。
hibernate-regionsが有効な場合、デフォルト値は256です。5hibernate-regions無効な場合、デフォルト値は1024です。- 最小値:
0より大きい - 最大値:
10240
store-pool-size
- Raft を処理するプール内の許容スレッド数。これはRaftstoreスレッドプールのサイズです。このスレッドプールのサイズを変更する場合は、 TiKV スレッドプールのパフォーマンスチューニングを参照してください。
- デフォルト値:
2 - 値の範囲:
[1, CPU * 10]CPUCPU コアの数を意味します。
store-io-pool-size v5.3.0 の新機能
- Raft I/Oタスクを処理するスレッドの許容数。これはStoreWriterスレッドプールのサイズです。このスレッドプールのサイズを変更する場合は、 TiKV スレッドプールのパフォーマンスチューニングを参照してください。
- デフォルト値:
1(v8.0.0 より前のデフォルト値は0) - 最小値:
0
future-poll-size
future駆動するスレッドの許容数- デフォルト値:
1 - 最小値:
0より大きい
cmd-batch
- リクエストのバッチ処理を有効にするかどうかを制御します。有効にすると、書き込みパフォーマンスが大幅に向上します。
- デフォルト値:
true
inspect-interval
- TiKVは一定の間隔でRaftstoreコンポーネントのレイテンシーを検査します。このパラメータは検査間隔を指定します。レイテンシーがこの値を超えると、検査はタイムアウトとしてマークされます。
- タイムアウト検査の比率に基づいて、TiKV ノードが遅いかどうかを判断します。
- デフォルト値:
"100ms" - 最小値:
"1ms"
raft-write-size-limitバージョン5.3.0の新機能
- Raftデータがディスクに書き込まれるしきい値を決定します。データサイズがこの設定項目の値より大きい場合、データはディスクに書き込まれます。1の値が
store-io-pool-size0場合、この設定項目は有効になりません。 - デフォルト値:
1MiB - 最小値:
0
evict-cache-on-memory-ratioバージョン 7.5.0 の新機能
- TiKV のメモリ使用量がシステム使用可能メモリの 90% を超え、 Raftエントリ キャッシュが占有するメモリが使用メモリ*
evict-cache-on-memory-ratioを超えると、TiKV はRaftエントリ キャッシュを排除します。 - この値が
0に設定されている場合、この機能は無効であることを意味します。 - デフォルト値:
0.1 - 最小値:
0
periodic-full-compact-start-times v7.6.0 の新機能
- TiKVが定期的なフルコンパクションを開始する特定の時刻を設定します。配列で複数のタイムスケジュールを指定できます。例:
periodic-full-compact-start-times = ["03:00", "23:00"]TiKV ノードのローカル タイム ゾーンに基づいて、TiKV が毎日午前 3 時と午後 11 時に完全圧縮を実行することを示します。periodic-full-compact-start-times = ["03:00 +0000", "23:00 +0000"]、TiKV が UTC タイムゾーンで毎日午前 3:00 と午後 11:00 に完全圧縮を実行することを示します。periodic-full-compact-start-times = ["03:00 +0800", "23:00 +0800"]、TiKV が UTC+08:00 タイムゾーンで毎日午前 3:00 と午後 11:00 に完全圧縮を実行することを示します。
- デフォルト値:
[]。これは、定期的な完全圧縮がデフォルトで無効になっていることを意味します。
periodic-full-compact-start-max-cpuバージョン7.6.0の新機能
- TiKV 定期完全圧縮の最大 CPU 使用率を制限します。
- デフォルト値:
0.1。これは、定期的な圧縮プロセスの最大 CPU 使用率が 10% であることを意味します。
follower-read-max-log-gap v7.4.0 の新機能
- 読み取りリクエストの処理時にフォロワーが遅延できるログの最大数。この制限を超えると、読み取りリクエストは拒否されます。
- デフォルト値:
100
inspect-cpu-util-thdバージョン7.6.0の新機能
- 低速ノード検出中に TiKV ノードがビジー状態であるかどうかを判断するための CPU 使用率しきい値。
- 値の範囲:
[0, 1] - デフォルト値:
0.4、つまり40%です。
inspect-kvdb-intervalバージョン8.1.2の新機能
- TiKVにおける低速ノード検出時にKVディスクをチェックする間隔とタイムアウト。KVDBとRaftDBが同じマウントパスを共有している場合、この値は
0(検出なし)に上書きされます。 - デフォルト値:
2s
min-pending-apply-region-countバージョン 8.0.0 の新機能
- TiKV の起動時にRaftログの適用がビジー状態にあるリージョンの最大数。Raftstoreは、このようなリージョンの数がこの値を下回っている場合にのみリーダー転送を受け入れるため、ローリング再起動時の可用性の低下を軽減できます。
- デフォルト値:
10
request-voter-replicated-index-interval v6.6.0 の新機能
- Witness ノードが投票ノードから複製されたRaftログ位置を定期的に取得する間隔を制御します。
- デフォルト値:
5m、つまり 5 分です。
slow-trend-unsensitive-cause v6.6.0 の新機能
- TiKVがSlowTrend検出アルゴリズムを使用する場合、この設定項目はレイテンシー検出の感度を制御します。値が高いほど、感度は低くなります。
- デフォルト値:
10
slow-trend-unsensitive-result v6.6.0 の新機能
- TiKVがSlowTrend検出アルゴリズムを使用する場合、この設定項目はQPS検出の感度を制御します。値が高いほど感度は低くなります。
- デフォルト値:
0.5
コプロセッサ
コプロセッサーに関連するコンフィグレーション項目。
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
- 新しく分割されたリージョンのサイズ。この値は推定値です。
- デフォルト値:
"256MiB"。v8.4.0 より前では、デフォルト値は"96MiB"です。 - 単位: KiB|MiB|GiB
region-max-keys
- リージョン内で許容されるキーの最大数。この値を超えると、リージョンは複数のリージョンに分割されます。
- デフォルト値:
region-split-keys / 2 * 3
region-split-keys
- 新しく分割されたリージョン内のキーの数。この値は推定値です。
- デフォルト値:
2560000。v8.4.0 より前では、デフォルト値は960000です。
consistency-check-method
- データの整合性チェックの方法を指定します
- MVCCデータの整合性チェックの場合は値を
"mvcc"に設定し、生データの整合性チェックの場合は値を"raw"に設定します。 - デフォルト値:
"mvcc"
コプロセッサv2
coprocessor-plugin-directory
- コンパイルされたコプロセッサプラグインが配置されているディレクトリのパス。このディレクトリ内のプラグインはTiKVによって自動的にロードされます。
- この構成項目が設定されていない場合、コプロセッサ プラグインは無効になります。
- デフォルト値: なし
enable-region-bucket v6.1.0 の新機能
- リージョンをバケットと呼ばれる小さな範囲に分割するかどうかを決定します。バケットは、スキャンの同時実行性を向上させるための同時実行クエリの単位として使用されます。バケットの設計の詳細については、 動的サイズリージョンを参照してください。
- デフォルト値: なし。デフォルトでは無効です。
region-bucket-size v6.1.0 の新機能
enable-region-bucketが true の場合のバケットのサイズ。- デフォルト値: v7.3.0 以降、デフォルト値は
96MiBから50MiBに変更されます。
ロックスdb
RocksDBに関連するコンフィグレーション項目
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
- 同時バックグラウンド メンバーテーブル フラッシュ ジョブの最大数
- デフォルト値:
- 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マニフェストファイルの最大サイズ
- デフォルト値:
"128MiB" - 最小値:
0 - 単位: B|KiB|MiB|GiB
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ファイルが保存されるディレクトリ。指定されていない場合、WALファイルはデータと同じディレクトリに保存されます。
- デフォルト値:
""
wal-ttl-seconds
- アーカイブされたWALファイルの有効期間。この値を超えると、システムはこれらのファイルを削除します。
- デフォルト値:
0 - 最小値:
0 - 単位: 秒
wal-size-limit
- アーカイブされたWALファイルのサイズ制限。この値を超えると、システムはこれらのファイルを削除します。
- デフォルト値:
0 - 最小値:
0 - 単位: B|KiB|MiB|GiB
max-total-wal-size
合計での最大 RocksDB WAL サイズは、
data-dirファイルのうち*.logのサイズです。デフォルト値:
storage.engine="raft-kv"場合、デフォルト値は"4GiB"です。storage.engine="partitioned-raft-kv"場合、デフォルト値は1です。
stats-dump-period
統計がログに出力される間隔。
デフォルト値:
storage.engine="raft-kv"場合、デフォルト値は"10m"です。storage.engine="partitioned-raft-kv"場合、デフォルト値は"0"です。
compaction-readahead-size
- RocksDBの圧縮中に先読み機能を有効にし、先読みデータのサイズを指定します。機械式ディスクを使用している場合は、少なくとも2MiBに設定することをお勧めします。
- デフォルト値:
0 - 最小値:
0 - 単位: B|KiB|MiB|GiB
writable-file-max-buffer-size
- WritableFileWriteで使用される最大バッファサイズ
- デフォルト値:
"1MiB" - 最小値:
0 - 単位: B|KiB|MiB|GiB
use-direct-io-for-flush-and-compaction
- バックグラウンドフラッシュとコンパクションにおいて、読み取りと書き込みの両方に
O_DIRECT使用するかどうかを決定します。このオプションのパフォーマンスへの影響:O_DIRECT有効にすると、OSバッファキャッシュの汚染を回避できますが、後続のファイル読み取りではバッファキャッシュへの内容の再読み込みが必要になります。 - デフォルト値:
false
rate-bytes-per-sec
- Titanが無効になっている場合、この設定項目はRocksDBコンパクションのI/Oレートを制限し、トラフィックピーク時のフォアグラウンドの読み取りおよび書き込みパフォーマンスへのRocksDBコンパクションの影響を軽減します。Titanが有効になっている場合、この設定項目はRocksDBコンパクションとTitan GCの合計I/Oレートを制限します。RocksDBコンパクションとTitan GCのI/OまたはCPU消費量が大きすぎる場合は、ディスクI/O帯域幅と実際の書き込みトラフィックに応じて、この設定項目を適切な値に設定してください。
- デフォルト値:
10GiB - 最小値:
0 - 単位: B|KiB|MiB|GiB
rate-limiter-refill-period
- I/Oトークンの補充頻度を制御します。値を小さくするとI/Oバーストは減少しますが、CPUオーバーヘッドが増加します。
- デフォルト値:
"100ms"
rate-limiter-mode
- RocksDBの圧縮レート制限モード
"write-only""all-io":"read-only"- デフォルト値:
"write-only"
rate-limiter-auto-tuned v5.0 の新機能
- RocksDBの圧縮レートリミッターの設定を、最近のワークロードに基づいて自動的に最適化するかどうかを決定します。この設定を有効にすると、圧縮保留バイト数が通常よりもわずかに多くなります。
- デフォルト値:
true
enable-pipelined-write
- パイプライン書き込みを有効にするかどうかを制御します。この設定を有効にすると、以前のパイプライン書き込みが使用されます。この設定を無効にすると、新しいパイプラインコミットメカニズムが使用されます。
- デフォルト値:
false
bytes-per-sync
- ファイルが非同期的に書き込まれている間に、OSがファイルをディスクに増分的に同期する速度
- デフォルト値:
"1MiB" - 最小値:
0 - 単位: B|KiB|MiB|GiB
wal-bytes-per-sync
- WAL ファイルが書き込まれている間に OS が WAL ファイルをディスクに増分的に同期する速度
- デフォルト値:
"512KiB" - 最小値:
0 - 単位: B|KiB|MiB|GiB
info-log-max-size
- 情報ログの最大サイズ
- デフォルト値:
"1GiB" - 最小値:
0 - 単位: B|KiB|MiB|GiB
info-log-roll-time
- 情報ログが切り捨てられる時間間隔。値が
0sの場合、ログは切り捨てられません。 - デフォルト値:
"0s"
info-log-keep-log-file-num
- 保存されるログファイルの最大数
- デフォルト値:
10 - 最小値:
0
info-log-dir
- ログが保存されるディレクトリ
- デフォルト値:
""
info-log-level
- RocksDBのログレベル
- デフォルト値:
"info"
write-buffer-flush-oldest-first v6.6.0 の新機能
現在の RocksDB の
memtableのメモリ使用量がしきい値に達したときに使用するフラッシュ戦略を指定します。デフォルト値:
false値のオプション:
- データ量が最も大きい
false:memtableが SST ファイルにフラッシュされます。 true:最も古いmemtableがSSTファイルにフラッシュされます。この戦略はコールドデータのmemtableクリアできるため、コールドデータとホットデータが明確に区別できるシナリオに適しています。
- データ量が最も大きい
write-buffer-limit v6.6.0 の新機能
単一の TiKV 内のすべての RocksDB インスタンスの合計メモリ制限を
memtable指定します。30制限がないことを意味します。デフォルト値:
storage.engine="raft-kv"場合、デフォルト値は none となり、制限がないことを意味します。storage.engine="partitioned-raft-kv"の場合、デフォルト値はシステムメモリの合計サイズの 20% になります。
単位: KiB|MiB|GiB
track-and-verify-wals-in-manifest v6.5.9、v7.1.5、v7.5.2、v8.0.0 の新機能
- RocksDB MANIFESTファイルにWrite Ahead Log(WAL)ファイルに関する情報を記録するかどうか、および起動時にWALファイルの整合性を検証するかどうかを制御します。詳細については、RocksDB MANIFESTでWALを追跡するを参照してください。
- デフォルト値:
true - 値のオプション:
true: WAL ファイルに関する情報を MANIFEST ファイルに記録し、起動時に WAL ファイルの整合性を検証します。false: MANIFEST ファイルに WAL ファイルに関する情報を記録せず、起動時に WAL ファイルの整合性を検証しません。
enable-multi-batch-write v6.2.0 の新機能
- RocksDB 書き込み最適化を有効にするかどうかを制御します。これにより、WriteBatch の内容を memtable に同時に書き込むことができ、書き込みのレイテンシーが短縮されます。
- デフォルト値: なし。ただし、明示的に
falseに設定した場合、またはrocksdb.enable-pipelined-writeまたはrocksdb.enable-unordered-write有効になっている場合を除き、デフォルトで有効になります。
rocksdb.titan
Titan に関連するコンフィグレーション項目。
enabled
注記:
- ワイド テーブルと JSON データの書き込みおよびポイント クエリのパフォーマンスを向上させるために、TiDB v7.6.0 以降では既定値が
falseからtrueに変更され、Titan がデフォルトで有効になります。- v7.6.0 以降のバージョンにアップグレードされた既存のクラスターは元の構成を保持します。つまり、Titan が明示的に有効になっていない場合は、引き続き RocksDB が使用されます。
- TiDB v7.6.0以降にアップグレードする前にクラスタでTitanが有効になっている場合、アップグレード後もTitanは保持され、アップグレード前の
min-blob-size設定が保持されます。アップグレード前に明示的に値を設定しない場合は、アップグレード後のクラスタ構成の安定性を確保するために、以前のバージョン1KiBのデフォルト値が保持されます。
- Titan を有効または無効にします。
- デフォルト値:
true
dirname
- Titan Blobファイルが保存されているディレクトリ
- デフォルト値:
"titandb"
disable-gc
- Titan が BLOB ファイルに対して実行するガベージ コレクション (GC) を無効にするかどうかを決定します。
- デフォルト値:
false
max-background-gc
- Titan の GC スレッドの最大数。TiKVの「詳細」 > 「スレッド CPU」 > 「RocksDB CPU」パネルで、Titan GC スレッドが長時間にわたって満杯になっていることが確認された場合は、Titan GC スレッドプールのサイズを増やすことを検討してください。
- デフォルト値:
1。v8.0.0 より前では、デフォルト値は4です。 - 最小値:
1
rocksdb.defaultcf | rocksdb.writecf | rocksdb.lockcf | rocksdb.raftcf
rocksdb.defaultcf rocksdb.writecf rocksdb.lockcfするコンフィグレーション項目。
block-size
- RocksDBブロックのデフォルトサイズ
defaultcfとwritecfのデフォルト値:"32KiB"lockcfのデフォルト値:"16KiB"- 最小値:
"1KiB" - 単位: KiB|MiB|GiB
block-cache-size
- RocksDB ブロックのキャッシュ サイズ。
defaultcfのデフォルト値:Total machine memory * 25%writecfのデフォルト値:Total machine memory * 15%lockcfのデフォルト値:Total machine memory * 2%- 最小値:
0 - 単位: KiB|MiB|GiB
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のデフォルト値:truewritecfとlockcfのデフォルト値:false
optimize-filters-for-memory v7.2.0 の新機能
- メモリの内部断片化を最小限に抑えるブルーム/リボン フィルターを生成するかどうかを決定します。
- この構成項目は
format-version>= 5 の場合にのみ有効になることに注意してください。 - デフォルト値:
false
whole-key-filtering
- キー全体をブルームフィルターに入れるかどうかを決定します
defaultcfとlockcfのデフォルト値:truewritecfのデフォルト値:false
bloom-filter-bits-per-key
- ブルームフィルターが各キーに予約する長さ
- デフォルト値:
10 - 単位: バイト
block-based-bloom-filter
- 各ブロックがブルームフィルターを作成するかどうかを決定します
- デフォルト値:
false
ribbon-filter-above-level v7.2.0 の新機能
- この値以上のレベルにはリボンフィルターを使用し、この値未満のレベルには非ブロックベースのブルームフィルターを使用するかどうかを決定します。この設定項目が設定されている場合、
block-based-bloom-filter無視されます。 - この構成項目は
format-version>= 5 の場合にのみ有効になることに注意してください。 - デフォルト値: なし。デフォルトでは無効です。
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設定を上書きします。 - RocksDB は、データが LSM ツリーに書き込まれた時点から、
compression-per-levelレイヤーで指定された最後の圧縮アルゴリズムを最下層に直接採用しません。3bottommost-level-compression、最レイヤーが最初から圧縮効果が最も高い圧縮アルゴリズムを使用できるようになります。 - 最レイヤーに圧縮アルゴリズムを設定しない場合は、この構成項目の値を
disableに設定します。 - デフォルト値:
"zstd"
write-buffer-size
- メモリテーブルのサイズ
defaultcfとwritecfのデフォルト値:"128MiB"lockcfのデフォルト値:storage.engine="raft-kv"場合、デフォルト値は"32MiB"です。storage.engine="partitioned-raft-kv"場合、デフォルト値は"4MiB"です。
- 最小値:
0 - 単位: KiB|MiB|GiB
max-write-buffer-number
- memtableの最大数。1
storage.flow-control.enabletrueに設定すると、storage.flow-control.memtables-thresholdこの設定項目を上書きします。 - デフォルト値:
5 - 最小値:
0
min-write-buffer-number-to-merge
- フラッシュをトリガーするために必要な最小のmemtable数
- デフォルト値:
1 - 最小値:
0
max-bytes-for-level-base
- ベースレベル(レベル1)の最大バイト数。通常、memtableのサイズの4倍に設定されます。レベル1のデータサイズが制限値
max-bytes-for-level-baseに達すると、レベル1のSSTファイルと、それらに重複するレベル2のSSTファイルが圧縮されます。 defaultcfとwritecfのデフォルト値:"512MiB"lockcfのデフォルト値:"128MiB"- 最小値:
0 - 単位: KiB|MiB|GiB
- 不要な圧縮を減らすために、
max-bytes-for-level-baseの値はL0のデータ量とほぼ同じに設定することをお勧めします。たとえば、圧縮方法が「no:no:lz4:lz4:lz4:lz4:lz4」の場合、L0とL1は圧縮されておらず、L0の圧縮のトリガー条件はSSTファイルの数が4(デフォルト値)に達することであるため、max-bytes-for-level-base値はwrite-buffer-size * 4にする必要があります。L0とL1の両方で圧縮が採用されている場合、memtableから圧縮されたSSTファイルのサイズを把握するには、RocksDBログを分析する必要があります。たとえば、ファイルサイズが32MiBの場合、max-bytes-for-level-baseの値を128MiB(32 MiB * 4)に設定することをお勧めします。
target-file-size-base
- ベースレベルでのターゲットファイルのサイズ。値が
enable-compaction-guardtrue場合、この値はcompaction-guard-max-output-file-sizeで上書きされます。 - デフォルト値: なし。デフォルトでは
"8MiB"意味します。 - 最小値:
0 - 単位: KiB|MiB|GiB
level0-file-num-compaction-trigger
- 圧縮をトリガーするL0のファイルの最大数
defaultcfとwritecfのデフォルト値:4lockcfのデフォルト値:1- 最小値:
0
level0-slowdown-writes-trigger
- 書き込みストールをトリガーするL0ファイルの最大数。1
storage.flow-control.enabletrueに設定した場合、storage.flow-control.l0-files-thresholdこの設定項目を上書きします。 - デフォルト値:
20 - 最小値:
0
level0-stop-writes-trigger
- 書き込みを完全にブロックするために必要なL0のファイルの最大数
- デフォルト値:
36 - 最小値:
0
max-compaction-bytes
- 圧縮ごとにディスクに書き込まれる最大バイト数
- デフォルト値:
"2GiB" - 最小値:
0 - 単位: KiB|MiB|GiB
compaction-pri
- 圧縮の優先タイプ
- オプションの値:
"by-compensated-size": ファイル サイズの順にファイルを圧縮し、大きなファイルは優先順位を高くして圧縮します。"oldest-largest-seq-first": 更新時刻が最も古いファイルの圧縮を優先します。この値は、ホットキーを狭い範囲で更新する場合にのみ使用してください。"oldest-smallest-seq-first": 長期間にわたって次のレベルに圧縮されない範囲を持つファイルの圧縮を優先します。キー空間全体でホットキーをランダムに更新する場合、この値により書き込み増幅がわずかに軽減される可能性があります。"min-overlapping-ratio": オーバーラップ率の高いファイルの圧縮を優先します。ファイルの各レベルが小さい場合(the file size in the next level÷the file size in this levelの結果が小さい場合)、TiKV はこのファイルを最初に圧縮します。多くの場合、この値は書き込み増幅を効果的に削減できます。
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
- 圧縮方法
"universal""fifo":"level"- デフォルト値:
"level"
disable-auto-compactions
- 自動圧縮を無効にするかどうかを決定します。
- デフォルト値:
false
soft-pending-compaction-bytes-limit
- 保留中の圧縮バイトのソフト制限。1
storage.flow-control.enabletrueに設定した場合、storage.flow-control.soft-pending-compaction-bytes-limitこの設定項目を上書きします。 - デフォルト値:
"192GiB" - 単位: KiB|MiB|GiB
hard-pending-compaction-bytes-limit
- 保留中の圧縮バイト数のハードリミット。1
truestorage.flow-control.enable設定した場合、storage.flow-control.hard-pending-compaction-bytes-limitこの設定項目を上書きします。 - デフォルト値:
"256GiB" - 単位: KiB|MiB|GiB
enable-compaction-guard
- TiKVリージョン境界でSSTファイルを分割する最適化であるコンパクションガードを有効または無効にします。この最適化により、コンパクションI/Oが削減され、TiKVはより大きなSSTファイルサイズ(つまり、全体的なSSTファイルの数が少ない)を使用できるようになります。また、リージョンの移行時に古いデータを効率的にクリーンアップできます。
defaultcfとwritecfのデフォルト値:truelockcfのデフォルト値: なし。デフォルトでは無効であることを意味します。
compaction-guard-min-output-file-size
- 圧縮ガードが有効になっている場合のSSTファイルの最小サイズ。この設定により、圧縮ガードが有効になっているときにSSTファイルが小さすぎる状態になるのを防ぎます。
- デフォルト値:
"8MiB" - 単位: KiB|MiB|GiB
compaction-guard-max-output-file-size
- 圧縮ガードが有効な場合のSSTファイルの最大サイズ。この設定により、圧縮ガードが有効な場合にSSTファイルが大きくなりすぎるのを防ぎます。この設定は、同じカラムファミリーの
target-file-size-baseオーバーライドします。 - デフォルト値:
"128MiB" - 単位: KiB|MiB|GiB
format-version v6.2.0 の新機能
SSTファイルのフォーマットバージョン。この設定項目は新しく書き込まれるテーブルにのみ影響します。既存のテーブルの場合、バージョン情報はフッターから読み取られます。
オプションの値:
0: すべてのTiKVバージョンで読み取り可能です。デフォルトのチェックサムタイプはCRC32であり、このバージョンではチェックサムタイプの変更はサポートされていません。1: すべてのTiKVバージョンで読み取り可能です。xxHashなどのデフォルト以外のチェックサムタイプをサポートします。RocksDBはチェックサムタイプがCRC32以外の場合にのみデータを書き込みます。(バージョン0は自動的にアップグレードされます)2: すべてのTiKVバージョンで読み取り可能です。LZ4、BZip2、Zlib圧縮方式を使用して圧縮ブロックのエンコーディングを変更します。3: TiKV v2.1以降のバージョンで読み取り可能です。インデックスブロック内のキーのエンコーディングを変更します。4: TiKV v3.0以降のバージョンで読み取ることができます。インデックスブロック内の値のエンコードを変更します。5: TiKV v6.1以降のバージョンで読み取り可能です。フルフィルターとパーティションフィルターは、異なるスキーマを使用した、より高速で正確なブルームフィルター実装を使用します。
デフォルト値:
storage.engine="raft-kv"場合、デフォルト値は2です。storage.engine="partitioned-raft-kv"場合、デフォルト値は5です。
ttlバージョン7.2.0の新機能
- TTLよりも古い更新を含むSSTファイルは、自動的に圧縮対象として選択されます。これらのSSTファイルは、最下層または最下層ファイルまで圧縮されるように、段階的に圧縮されます。
- デフォルト値: なし。デフォルトでは SST ファイルが選択されていないことを意味します。
- 単位: s(秒)|h(時間)|d(日)
periodic-compaction-seconds v7.2.0 の新機能
- 定期的な圧縮の時間間隔。この値より古い更新を含む SST ファイルが圧縮対象として選択され、これらの SST ファイルが元々存在していたレベルと同じレベルに書き換えられます。
- デフォルト値: なし。つまり、定期的な圧縮はデフォルトで無効になっています。
- 単位: s(秒)|h(時間)|d(日)
max-compactionsバージョン6.6.0の新機能
- 同時実行可能な圧縮タスクの最大数。値
0制限なしを意味します。 - デフォルト値:
0
rocksdb.defaultcf.titan
注記:
Titan は
rocksdb.defaultcfでのみ有効化できます。rocksdb.writecfでは Titan を有効化できません。
rocksdb.defaultcf.titanに関連するコンフィグレーション項目です。
min-blob-size
注記:
- TiDB v7.6.0以降、ワイドテーブルおよびJSONデータの書き込みとポイントクエリのパフォーマンスを向上させるため、Titanがデフォルトで有効化されました。デフォルト値は
min-blob-sizeでしたが、1KiBから32KiBに変更されました。つまり、32KiB超える値はTitanに保存され、その他のデータは引き続きRocksDBに保存されます。- 構成の一貫性を確保するために、既存のクラスターを TiDB v7.6.0 以降のバージョンにアップグレードする場合、アップグレード前に
min-blob-size明示的に設定しないと、TiDB は以前のデフォルト値1KiBを保持します。32KiBより小さい値は、範囲スキャンのパフォーマンスに影響を与える可能性があります。ただし、ワークロードが主に大量の書き込みとポイントクエリである場合は、パフォーマンスを向上させるために値をmin-blob-sizeに下げることを検討してください。
- BLOBファイルに格納される最小値。指定されたサイズより小さい値はLSMツリーに格納されます。
- デフォルト値: なし。デフォルトでは
"32KiB"意味します。 - 最小値:
0 - 単位: KiB|MiB|GiB
blob-file-compression
注記:
- Snappy 圧縮ファイルは公式Snappyフォーマットである必要があります。その他の Snappy 圧縮形式はサポートされていません。
- TiDB v7.6.0 以降では、デフォルト値
blob-file-compressionが"lz4"から"zstd"に変更されます。
- BLOBファイルで使用される圧縮アルゴリズム
"bzip2""zlib""lz4""no""snappy""lz4hc""zstd"- デフォルト値:
"zstd"
zstd-dict-size
- zstd 辞書の圧縮サイズ。デフォルト値は
"0KiB"で、これは zstd 辞書の圧縮を無効にすることを意味します。この場合、Titan は単一の値に基づいてデータを圧縮しますが、RocksDB はブロックに基づいてデータを圧縮します (デフォルトでは32KiB)。Titan 値の平均サイズが32KiB未満の場合、Titan の圧縮率は RocksDB よりも低くなります。JSON を例にとると、Titan のストア サイズは RocksDB よりも 30% ~ 50% 大きくなる可能性があります。実際の圧縮率は、値の内容が圧縮に適しているかどうか、および異なる値間の類似性によって異なります。zstd-dict-size構成すると (たとえば、16KiBに設定すると)、zstd 辞書の圧縮を有効にして圧縮率を上げることができます。実際のストア サイズは RocksDB よりも小さくなる可能性があります。ただし、zstd 辞書の圧縮により、特定のワークロードで約 10% のパフォーマンス低下が発生する可能性があります。 - デフォルト値:
"0KiB" - 単位: KiB|MiB|GiB
blob-cache-size
- BLOBファイルのキャッシュサイズ
- デフォルト値:
"0GiB" - 最小値:
0 - 推奨値:
0。v8.0.0以降、TiKVは設定項目shared-blob-cache導入し、デフォルトで有効になっているため、blob-cache-size別途設定する必要はありません。7blob-cache-size設定は、shared-blob-cachefalseに設定されている場合にのみ有効になります。 - 単位: KiB|MiB|GiB
shared-blob-cache v8.0.0 の新機能
- Titan BLOB ファイルと RocksDB ブロック ファイルの共有キャッシュを有効にするかどうかを制御します。
- デフォルト値:
true。共有キャッシュが有効な場合、ブロックファイルの優先度が高くなります。つまり、TiKVはブロックファイルのキャッシュニーズを満たすことを優先し、残りのキャッシュをBLOBファイルに使用します。
min-gc-batch-size
- GCを1回実行するために必要なBlobファイルの最小合計サイズ
- デフォルト値:
"16MiB" - 最小値:
0 - 単位: KiB|MiB|GiB
max-gc-batch-size
- 一度にGCを実行できるBlobファイルの最大合計サイズ
- デフォルト値:
"64MiB" - 最小値:
0 - 単位: KiB|MiB|GiB
discardable-ratio
BLOBファイル内の古いデータ(対応するキーが更新または削除されたデータ)の割合が以下のしきい値を超えると、Titan GCがトリガーされます。TitanがこのBLOBファイルの有効なデータを別のファイルに書き込む際、
discardable-ratio値を使用して書き込み増幅とスペース増幅の上限を推定できます(圧縮が無効の場合)。書き込み増幅の上限 = 1 /
discardable-ratio空間増幅の上限 = 1 / (1 -
discardable-ratio)これら2つの式から、
discardable_ratioの値を減らすとスペース増幅は減少しますが、TitanでのGCの頻度は増加します。値を増やすとTitan GCの頻度が減少し、対応するI/O帯域幅とCPU使用率は低下しますが、ディスク使用量は増加します。デフォルト値:
0.5最小値:
0最大値:
1
sample-ratio
- GC中にファイルをサンプリングするときの(Blobファイルから読み取られたデータ/Blobファイル全体)の比率
- デフォルト値:
0.1 - 最小値:
0 - 最大値:
1
merge-small-file-threshold
- BLOBファイルのサイズがこの値より小さい場合でも、そのBLOBファイルはGCの対象として選択される可能性があります。この場合、
discardable-ratio無視されます。 - デフォルト値:
"8MiB" - 最小値:
0 - 単位: KiB|MiB|GiB
blob-run-mode
- Titanの実行モードを指定します。
- オプションの値:
normal: 値のサイズがmin-blob-size超えると、データを BLOB ファイルに書き込みます。read-only: BLOB ファイルへの新しいデータの書き込みを拒否しますが、BLOB ファイルから元のデータは読み取ります。fallback: BLOB ファイル内のデータを LSM に書き戻します。
- デフォルト値:
normal
level-merge
- 読み取りパフォーマンスを最適化するかどうかを決定します。1
level-merge有効にすると、書き込み増幅が強化されます。 - デフォルト値:
false
ラフトDB
raftdbに関連するコンフィグレーション項目
max-background-jobs
- RocksDBのバックグラウンドスレッドの数。RocksDBスレッドプールのサイズを変更する場合は、 TiKV スレッドプールのパフォーマンスチューニングを参照してください。
- デフォルト値:
4 - 最小値:
2
max-sub-compactions
- RocksDBで実行される同時サブコンパクション操作の数
- デフォルト値:
2 - 最小値:
1
max-open-files
- RocksDBが開くことができるファイルの総数
- デフォルト値:
40960 - 最小値:
-1
max-manifest-file-size
- RocksDBマニフェストファイルの最大サイズ
- デフォルト値:
"20MiB" - 最小値:
0 - 単位: B|KiB|MiB|GiB
create-if-missing
- 値が
trueの場合、データベースが存在しない場合に作成されます。 - デフォルト値:
true
stats-dump-period
- 統計がログに出力される間隔
- デフォルト値:
10m
wal-dir
- Raft RocksDB WALファイルが保存されるディレクトリ。WALの絶対ディレクトリパスです。この設定項目を
rocksdb.wal-dirと同じ値に設定しないでください。 - この構成項目が設定されていない場合、ログ ファイルはデータと同じディレクトリに保存されます。
- マシンにディスクが 2 つある場合、RocksDB データと WAL ログを別のディスクに保存するとパフォーマンスが向上します。
- デフォルト値:
""
wal-ttl-seconds
- アーカイブされたWALファイルを保持する期間を指定します。この値を超えると、システムはこれらのファイルを削除します。
- デフォルト値:
0 - 最小値:
0 - 単位: 秒
wal-size-limit
- アーカイブされたWALファイルのサイズ制限。この値を超えると、システムはこれらのファイルを削除します。
- デフォルト値:
0 - 最小値:
0 - 単位: B|KiB|MiB|GiB
max-total-wal-size
- RocksDB WALの合計最大サイズ
- デフォルト値:
storage.engine="raft-kv"場合、デフォルト値は"4GiB"です。storage.engine="partitioned-raft-kv"場合、デフォルト値は1です。
compaction-readahead-size
- RocksDB の圧縮中に先読み機能を有効にするかどうか、また先読みデータのサイズを指定するかどうかを制御します。
- 機械式ディスクを使用する場合は、値を少なくとも
2MiBに設定することをお勧めします。 - デフォルト値:
0 - 最小値:
0 - 単位: B|KiB|MiB|GiB
writable-file-max-buffer-size
- WritableFileWriteで使用される最大バッファサイズ
- デフォルト値:
"1MiB" - 最小値:
0 - 単位: B|KiB|MiB|GiB
use-direct-io-for-flush-and-compaction
- バックグラウンドフラッシュとコンパクションにおいて、読み取りと書き込みの両方に
O_DIRECT使用するかどうかを決定します。このオプションのパフォーマンスへの影響:O_DIRECT有効にすると、OSバッファキャッシュの汚染を回避できますが、後続のファイル読み取りではバッファキャッシュへの内容の再読み込みが必要になります。 - デフォルト値:
false
enable-pipelined-write
- パイプライン書き込みを有効にするかどうかを制御します。この設定を有効にすると、以前のパイプライン書き込みが使用されます。この設定を無効にすると、新しいパイプラインコミットメカニズムが使用されます。
- デフォルト値:
true
allow-concurrent-memtable-write
- 同時メモリテーブル書き込みを有効にするかどうかを制御します。
- デフォルト値:
true
bytes-per-sync
- ファイルが非同期的に書き込まれている間に、OSがファイルをディスクに増分的に同期する速度
- デフォルト値:
"1MiB" - 最小値:
0 - 単位: B|KiB|MiB|GiB
wal-bytes-per-sync
- WALファイルが書き込まれるときにOSがWALファイルをディスクに増分的に同期する速度
- デフォルト値:
"512KiB" - 最小値:
0 - 単位: B|KiB|MiB|GiB
info-log-max-size
- 情報ログの最大サイズ
- デフォルト値:
"1GiB" - 最小値:
0 - 単位: B|KiB|MiB|GiB
info-log-roll-time
- 情報ログを切り捨てる間隔。値が
0sの場合、ログは切り捨てられません。 - デフォルト値:
"0s"(ログは切り捨てられません)
info-log-keep-log-file-num
- RaftDBに保存される情報ログファイルの最大数
- デフォルト値:
10 - 最小値:
0
info-log-dir
- 情報ログが保存されるディレクトリ
- デフォルト値:
""
info-log-level
- RaftDBのログレベル
- デフォルト値:
"info"
いかだエンジン
Raft Engineに関連するコンフィグレーション項目。
注記:
- Raft Engine を初めて有効にすると、TiKV は RocksDB からRaft Engineにデータを転送します。そのため、TiKV が起動するまで数十秒ほど待つ必要があります。
- TiDB v5.4.0 のRaft Engineのデータ形式は、以前の TiDB バージョンと互換性がありません。そのため、TiDB クラスターを v5.4.0 から以前のバージョンにダウングレードする必要がある場合は、ダウングレードする前に、 Raft Engineを
enableからfalseに設定して無効化し、TiKV を再起動して設定を有効にしてください。
enable
- Raftログを保存するためにRaft Engineを使用するかどうかを決定します。有効にすると、
raftdbの設定は無視されます。 - デフォルト値:
true
dir
- raft ログファイルが保存されるディレクトリ。このディレクトリが存在しない場合は、TiKV の起動時に作成されます。
- この設定項目が設定されていない場合は
{data-dir}/raft-engine使用されます。 - マシンに複数のディスクがある場合は、TiKV のパフォーマンスを向上させるために、 Raft Engineのデータを別のディスクに保存することをお勧めします。
- デフォルト値:
""
spill-dir v8.4.0 の新機能
- Raftログファイルを保存するための補助ディレクトリです。1
dirのディスク容量がいっぱいになると、新しいRaftログはこのディレクトリに保存されます。設定後にこの補助ディレクトリが存在しない場合は、TiKVの起動時に自動的に作成されます。 - この構成が設定されていない場合、補助ディレクトリは有効になりません。
注記:
- この構成は、Raft Engineの
dirとspill-dir異なるディスク ドライブに設定されている場合にのみ有効になります。- この機能を有効にした後、無効にする場合は、TiKVを再起動する前に以下の操作を実行する必要があります。そうしないと、TiKVは起動に失敗します。
- TiKVを停止します。
- すべてのRaftログを
spill-dirディレクトリからdirディレクトリにコピーします。- TiKV 構成ファイルからこの構成を削除します。
- TiKVを再起動します。
batch-compression-threshold
- ログバッチのしきい値サイズを指定します。この設定値より大きいログバッチは圧縮されます。この設定項目を
0に設定すると、圧縮は無効になります。 - デフォルト値:
"4KiB"。v8.1.0 より前では、デフォルト値は"8KiB"です。
bytes-per-sync
- バッファリングされた書き込みの最大累積サイズを指定します。この設定値を超えると、バッファリングされた書き込みはディスクにフラッシュされます。
- この構成項目を
0に設定すると、増分同期は無効になります。 - v6.5.0 より前では、デフォルト値は
"4MiB"です。
target-file-size
- ログファイルの最大サイズを指定します。ログファイルがこの値より大きい場合、ログファイルはローテーションされます。
- デフォルト値:
"128MiB"
purge-threshold
- メインログキューのしきい値サイズを指定します。この設定値を超えると、メインログキューは消去されます。
- この設定は、Raft Engineのディスク領域の使用量を調整するために使用できます。
- デフォルト値:
"10GiB"
recovery-mode
- 回復中にファイルの破損を処理する方法を決定します。
"tolerate-any-corruption""tolerate-tail-corruption"オプション:"absolute-consistency"- デフォルト値:
"tolerate-tail-corruption"
recovery-read-block-size
- リカバリ中にログ ファイルを読み取るための最小 I/O サイズ。
- デフォルト値:
"16KiB" - 最小値:
"512B"
recovery-threads
- ログ ファイルをスキャンして回復するために使用されるスレッドの数。
- デフォルト値:
4 - 最小値:
1
memory-limit
- Raft Engineのメモリ使用量の制限を指定します。
- この構成値が設定されていない場合、使用可能なシステムメモリの 15% が使用されます。
- デフォルト値:
Total machine memory * 15%
format-version v6.3.0 の新機能
注記:
format-version2に設定した後、TiKV クラスターを v6.3.0 から以前のバージョンにダウングレードする必要がある場合は、ダウングレード前に次の手順を実行します。
enableをfalseに設定してRaft Engineを無効にし、TiKV を再起動して設定を有効にします。format-versionを1に設定します。enableをtrueに設定してRaft Engineを有効にし、TiKV を再起動して設定を有効にします。
- Raft Engineのログ ファイルのバージョンを指定します。
- 値のオプション:
1: TiKV v6.3.0 より前のバージョンのデフォルトのログファイルバージョン。TiKV >= v6.1.0 で読み取ることができます。2: ログのリサイクルをサポートします。TiKV >= v6.3.0 で読み取ることができます。
- デフォルト値:
storage.engine="raft-kv"場合、デフォルト値は2です。storage.engine="partitioned-raft-kv"場合、デフォルト値は5です。
enable-log-recycleバージョン6.3.0の新機能
注記:
この構成項目は、
format-version>= 2 の場合にのみ使用できます。
- Raft Engineで古いログファイルをリサイクルするかどうかを決定します。有効にすると、論理的にパージされたログファイルがリサイクル用に予約されます。これにより、書き込みワークロードのロングテールレイテンシーが削減されます。
- デフォルト値:
true
prefill-for-recycle v7.0.0 の新機能
注記:
この設定項目は、
enable-log-recycletrueに設定されている場合にのみ有効になります。
- Raft Engineのログリサイクル用に空のログファイルを生成するかどうかを決定します。有効にすると、 Raft Engineは初期化中にログリサイクル用の空のログファイルを自動的にバッチで作成し、初期化直後にログリサイクルを有効にします。
- デフォルト値:
false
compression-level v7.4.0 の新機能
- Raftログファイルを書き込む際にRaft Engineが使用するLZ4アルゴリズムの圧縮効率を設定します。値が低いほど圧縮速度は速くなりますが、圧縮率は低くなります。
- 範囲:
[1, 16] - デフォルト値:
1
安全
セキュリティに関するコンフィグレーション項目。
ca-path
- CAファイルのパス
- デフォルト値:
""
cert-path
- X.509証明書を含むPrivacy Enhanced Mail(PEM)ファイルのパス
- デフォルト値:
""
key-path
- X.509キーを含むPEMファイルのパス
- デフォルト値:
""
cert-allowed-cn
- クライアントが提示する証明書内の許容可能なX.509共通名のリスト。提示された共通名がリスト内のエントリのいずれかと完全に一致する場合にのみ、リクエストが許可されます。
- デフォルト値:
[]。これは、クライアント証明書のCNチェックがデフォルトで無効になっていることを意味します。
redact-info-log v4.0.8 の新機能
- この設定項目は、ログ編集を有効または無効にします。値のオプションは
true、false、"on"、"off"、"marker"です。"on"、"off"、"marker"オプションはバージョン8.3.0で導入されました。 - 構成項目が
falseまたは"off"に設定されている場合、ログ編集は無効になります。 - 構成項目が
trueまたは"on"に設定されている場合、ログ内のすべてのユーザー データは?に置き換えられます。 - 設定項目を
"marker"に設定すると、ログ内のすべてのユーザーデータは‹ ›で囲まれます。ユーザーデータに‹または›含まれている場合、‹‹‹に、›››にエスケープされます。マークされたログに基づいて、ログを表示する際にマークされた情報を非感度化するかどうかを決定できます。 - デフォルト値:
false - 使用方法の詳細については、 TiKV側でのログ編集参照してください。
セキュリティ.暗号化
保存時の暗号化 (TDE)に関連するコンフィグレーション項目。
data-encryption-method
- データファイルの暗号化方法
- 値のオプション: "plaintext"、"aes128-ctr"、"aes192-ctr"、"aes256-ctr"、および "sm4-ctr" (v6.3.0 以降でサポート)
- 「プレーンテキスト」以外の値は暗号化が有効になっていることを意味し、その場合はマスター キーを指定する必要があります。
- デフォルト値:
"plaintext"
data-key-rotation-period
- TiKV がデータ暗号化キーをローテーションする頻度を指定します。
- デフォルト値:
7d
enable-file-dictionary-log
- TiKV が暗号化メタデータを管理するときに、I/O とミューテックスの競合を減らすための最適化を有効にします。
- この構成パラメータが有効になっている場合(デフォルト)に互換性の問題が発生するのを回避するには、詳細については保存時の暗号化- TiKVバージョン間の互換性参照してください。
- デフォルト値:
true
master-key
- 暗号化が有効になっている場合、マスターキーを指定します。マスターキーの設定方法については、 保存時の暗号化- 暗号化の設定参照してください。
previous-master-key
- 新しいマスターキーをローテーションする際に使用する古いマスターキーを指定します。設定形式は
master-keyと同じです。マスターキーの設定方法については、 保存時の暗号化- 暗号化の設定参照してください。
輸入
TiDB Lightning のインポートとBR復元に関連するコンフィグレーション項目。
num-threads
- RPCリクエストを処理するスレッドの数
- デフォルト値:
8 - 最小値:
1
stream-channel-window
- ストリームチャンネルのウィンドウサイズ。チャンネルがいっぱいになると、ストリームはブロックされます。
- デフォルト値:
128
memory-use-ratio v6.5.0 の新機能
- v6.5.0以降、PITRはメモリ内のバックアップログファイルへの直接アクセスとデータの復元をサポートします。この設定項目は、PITRに使用可能なメモリとTiKVの総メモリの比率を指定します。
- 値の範囲: [0.0, 0.5]
- デフォルト値:
0.3。これは、システムメモリの30%がPITRに使用できることを意味します。値が0.0場合、PITRはログファイルをローカルディレクトリにダウンロードすることで実行されます。
注記:
v6.5.0 より前のバージョンでは、ポイントインタイムリカバリ (PITR) は、バックアップ ファイルをローカル ディレクトリにダウンロードすることによるデータの復元のみをサポートします。
GC
batch-keys
- 1バッチでガベージコレクションされるキーの数
- デフォルト値:
512
max-write-bytes-per-sec
- GC ワーカーが 1 秒間に RocksDB に書き込むことができる最大バイト数。
- 値が
0に設定されている場合、制限はありません。 - デフォルト値:
"0"
enable-compaction-filterバージョン5.0の新機能
- 圧縮フィルタ機能でGCを有効にするかどうかを制御します
- デフォルト値:
true
ratio-threshold
- GC をトリガーするガベージ比率のしきい値。
- デフォルト値:
1.1
num-threads v6.5.8、v7.1.4、v7.5.1、v7.6.0 の新機能
enable-compaction-filter場合の GC スレッド数はfalseです。- デフォルト値:
1
gc.自動コンパクション
TiKV 自動圧縮の動作を設定します。
check-interval v7.5.7 の新機能
- TiKVが自動コンパクションをトリガーするかどうかを確認する間隔。この間隔内では、自動コンパクションの条件を満たすリージョンが優先度に基づいて処理されます。この間隔が経過すると、TiKVはリージョン情報を再スキャンし、優先度を再計算します。
- デフォルト値:
"300s"
tombstone-num-threshold v7.5.7 の新機能
- TiKV自動圧縮をトリガーするために必要なRocksDBトゥームストーンの数。トゥームストーンの数がこのしきい値に達するか、トゥームストーンの割合が
tombstone-percent-threshold達すると、TiKVは自動圧縮をトリガーします。 - この設定項目は、 圧縮フィルターが無効になっている場合にのみ有効になります。
- デフォルト値:
10000 - 最小値:
0
tombstone-percent-threshold v7.5.7 の新機能
- TiKV自動圧縮をトリガーするために必要なRocksDBトゥームストーンの割合。トゥームストーンの割合がこのしきい値に達するか、トゥームストーンの数が
tombstone-num-threshold達すると、TiKVは自動圧縮をトリガーします。 - この設定項目は、 圧縮フィルターが無効になっている場合にのみ有効になります。
- デフォルト値:
30 - 最小値:
0 - 最大値:
100
redundant-rows-threshold v7.5.7 の新機能
- TiKV自動コンパクションをトリガーするために必要な冗長MVCC行の数。冗長行には、RocksDBトゥームストーン、TiKVの古いバージョン、およびTiKVの削除トゥームストーンが含まれます。冗長MVCC行の数がこのしきい値に達するか、これらの行の割合が
redundant-rows-percent-threshold達すると、TiKVは自動コンパクションをトリガーします。 - この構成項目は、 圧縮フィルターが有効な場合にのみ有効になります。
- デフォルト値:
50000 - 最小値:
0
redundant-rows-percent-threshold v7.5.7 の新機能
- TiKV自動コンパクションをトリガーするために必要な冗長MVCC行の割合。冗長行には、RocksDBトゥームストーン、TiKVの古いバージョン、およびTiKVの削除トゥームストーンが含まれます。冗長MVCC行の数が
redundant-rows-threshold達するか、これらの行の割合がredundant-rows-percent-threshold達すると、TiKVは自動コンパクションをトリガーします。 - この構成項目は、 圧縮フィルターが有効な場合にのみ有効になります。
- デフォルト値:
20 - 最小値:
0 - 最大値:
100
bottommost-level-force v7.5.7 の新機能
- RocksDB の一番下のファイルに対して圧縮を強制するかどうかを制御します。
- デフォルト値:
true
バックアップ
BRバックアップに関連するコンフィグレーション項目。
num-threads
- バックアップを処理するワーカースレッドの数
- デフォルト値:
MIN(CPU * 0.5, 8) - 値の範囲:
[1, CPU] - 最小値:
1
batch-size
- 1回のバッチでバックアップするデータ範囲の数
- デフォルト値:
8
sst-max-size
- バックアップSSTファイルサイズのしきい値。TiKVリージョン内のバックアップファイルのサイズがこのしきい値を超える場合、ファイルは複数のファイルにバックアップされ、TiKVリージョンは複数のリージョン範囲に分割されます。分割されたリージョン内の各ファイルのサイズは、
sst-max-sizeと同じ(またはわずかに大きい)です。 - たとえば、リージョン
[a,e)のバックアップ ファイルのサイズがsst-max-sizeより大きい場合、ファイルはリージョン[a,b)[c,d)複数のファイルにバックアップされ、[d,e)[b,c)のサイズは[a,b)[b,c)のサイズと同じ (またはsst-max-sizeに[c,d)) になります。 - デフォルト値:
"384MiB"。v8.4.0 より前では、デフォルト値は"144MiB"です。
enable-auto-tune v5.4.0 の新機能
- クラスタリソースの使用率が高い場合に、クラスタへの影響を軽減するために、バックアップタスクで使用されるリソースを制限するかどうかを制御します。詳細については、 BRオートチューンを参照してください。
- デフォルト値:
true
s3-multi-part-size v5.3.2 の新機能
注記:
この設定は、S3 のレート制限によるバックアップ失敗に対処するために導入されました。この問題はバックアップデータのstorage構造の改良で修正されました。そのため、この設定はバージョン 6.1.1 以降では非推奨となり、推奨されなくなりました。
- バックアップ中にS3へのマルチパートアップロードを実行する際に使用するパートサイズ。この設定値を調整することで、S3に送信されるリクエストの数を制御できます。
- S3にデータをバックアップし、バックアップファイルがこの設定項目の値より大きい場合、 マルチパートアップロード自動的に有効になります。圧縮率に基づくと、96MiBのリージョンで生成されるバックアップファイルは約10MiB~30MiBになります。
- デフォルト値: 5MiB
backup.hadoop
home
- HDFSシェルコマンドの場所を指定し、TiKVがシェルコマンドを見つけられるようにします。この設定項目は環境変数
$HADOOP_HOMEと同じ効果を持ちます。 - デフォルト値:
""
linux-user
- TiKV が HDFS シェル コマンドを実行する Linux ユーザーを指定します。
- この設定項目が設定されていない場合、TiKV は現在の Linux ユーザーを使用します。
- デフォルト値:
""
ログバックアップ
ログバックアップに関連するコンフィグレーション項目。
v6.2.0の新機能enable
- ログ バックアップを有効にするかどうかを決定します。
- デフォルト値:
true
file-size-limit v6.2.0 の新機能
- 保存されるバックアップ ログ データのサイズ制限。
- デフォルト値: 256MiB
- 注: 通常、値
file-size-limitは外部storageに表示されるバックアップファイルのサイズよりも大きくなります。これは、バックアップファイルが外部storageにアップロードされる前に圧縮されるためです。
initial-scan-pending-memory-quota v6.2.0 の新機能
- ログ バックアップ中に増分スキャン データを保存するために使用されるキャッシュのクォータ。
- デフォルト値:
min(Total machine memory * 10%, 512 MiB)
initial-scan-rate-limit v6.2.0 の新機能
- ログバックアップ中の増分データスキャンにおけるスループットのレート制限。これは、ディスクから1秒あたりに読み取ることができるデータの最大量を意味します。数値のみ(例:
60)を指定した場合、単位はKiBではなくByteになります。 - デフォルト値: 60MiB
- 最小値: 1MiB
max-flush-interval v6.2.0 の新機能
- ログバックアップでバックアップデータを外部storageに書き込む最大間隔。
- デフォルト値: 3分
num-threads v6.2.0 の新機能
- ログ バックアップで使用されるスレッドの数。
- デフォルト値: CPU * 0.5
- 値の範囲: [2, 12]
temp-path v6.2.0 の新機能
- ログ ファイルが外部storageにフラッシュされる前に書き込まれる一時パス。
- デフォルト値:
${deploy-dir}/data/log-backup-temp
CDC
TiCDC に関連するコンフィグレーション項目。
min-ts-interval
- 解決された TS が計算され転送される間隔。
- デフォルト値:
"1s"。
注記:
バージョン6.5.0では、CDCレイテンシーを削減するため、デフォルト値の
min-ts-intervalが"1s"から"200ms"に変更されました。バージョン6.5.1以降では、ネットワークトラフィックを削減するため、このデフォルト値は"1s"に戻されます。
old-value-cache-memory-quota
- TiCDC によるメモリ使用量の上限の古い値。
- デフォルト値:
512MiB
sink-memory-quota
- TiCDC データ変更イベントによるメモリ使用量の上限。
- デフォルト値:
512MiB
incremental-scan-speed-limit
- 履歴データが増分スキャンされる最大速度。
- デフォルト値:
"128MiB"、これは 1 秒あたり 128 MiB を意味します。
incremental-scan-threads
- 履歴データを増分スキャンするタスクのスレッド数。
- デフォルト値:
4、これは 4 つのスレッドを意味します。
incremental-scan-concurrency
- 履歴データを増分スキャンするタスクの同時実行の最大数。
- デフォルト値:
6。最大 6 つのタスクを同時に実行できることを意味します。 - 注意:
incremental-scan-concurrencyの値はincremental-scan-threadsの値以上である必要があります。そうでない場合、TiKV は起動時にエラーを報告します。
incremental-scan-concurrency-limit v7.6.0 の新機能
- 実行待ちの履歴データの増分スキャンタスクの最大キュー長。実行待ちのタスク数がこの制限を超えると、新しいタスクは拒否されます。
- デフォルト値:
10000。これは、最大 10000 個のタスクを実行キューに入れることができることを意味します。 - 注:
incremental-scan-concurrency-limitincremental-scan-concurrencyである必要があります。そうでない場合、TiKV はincremental-scan-concurrency使用してこの構成を上書きします。
resolved-ts
ステイル読み取り要求に対応するために解決された TS を維持することに関連するコンフィグレーション項目。
enable
- すべてのリージョンに対して解決済みの TS を維持するかどうかを決定します。
- デフォルト値:
true
advance-ts-interval
- 解決された TS が計算され転送される間隔。
- デフォルト値:
"20s"
scan-lock-pool-size
- 解決済み TS を初期化するときに TiKV が MVCC (マルチバージョン同時実行制御) ロック データをスキャンするために使用するスレッドの数。
- デフォルト値:
2、つまり 2 つのスレッドを意味します。
pessimistic-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-memorypipelinedの値がtrue場合にのみ有効になることに注意してください。
in-memory-peer-size-limit v8.4.0 の新機能
- リージョン内のメモリ使用量のメモリ内悲観的ロックを制御します。この上限を超えると、TiKVは悲観的ロックを永続的に書き込みます。
- デフォルト値:
512KiB - 単位: KiB|MiB|GiB
in-memory-instance-size-limit v8.4.0 の新機能
- TiKVインスタンスメモリ内悲観的ロックあたりのメモリ使用量の上限を制御します。この上限を超えると、TiKVは悲観的ロックを永続的に書き込みます。
- デフォルト値:
100MiB - 単位: KiB|MiB|GiB
クォータ
クォータリミッターに関連するコンフィグレーション項目。
max-delay-duration v6.0.0 の新機能
- 単一の読み取りまたは書き込み要求がフォアグラウンドで処理されるまでに強制的に待機する最大時間。
- デフォルト値:
500ms - 推奨設定:ほとんどの場合、デフォルト値を使用することをお勧めします。インスタンスでメモリ不足(OOM)やパフォーマンスの急激な変動が発生する場合は、値を1秒に設定することで、リクエストの待機時間を1秒未満に短縮できます。
フォアグラウンドクォータリミッター
フォアグラウンド クォータ リミッターに関連するコンフィグレーション項目。
TiKV がデプロイされているマシンのリソースが限られているとします (たとえば、CPU が 4v でメモリが 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 を消費することを意味します) - 推奨設定:4コア以上のインスタンスの場合は、デフォルト値の
0使用します。4コアのインスタンスの場合は、1000から1500範囲に設定するとバランスが取れます。2コアのインスタンスの場合は、1200未満の値にしてください。
foreground-write-bandwidth v6.0.0 の新機能
- トランザクションがデータを書き込む帯域幅のソフト制限。
- デフォルト値:
0KiB(制限なしを意味します) - 推奨設定:ほとんどの場合、デフォルト値の
0使用しますが、foreground-cpu-time設定では書き込み帯域幅を制限するのに十分でない場合は、例外的に、コア数が4以下のインスタンスでは50MiB未満の値を設定することをお勧めします。
foreground-read-bandwidth v6.0.0 の新機能
- トランザクションとコプロセッサーがデータを読み取る帯域幅のソフト制限。
- デフォルト値:
0KiB(制限なしを意味します) - 推奨設定:ほとんどの場合、デフォルト値の
0使用します。ただし、foreground-cpu-time設定では読み取り帯域幅を制限するのに十分でない場合は、例外的に、コア数が4以下のインスタンスでは20MiB未満の値を設定することをお勧めします。
バックグラウンドクォータリミッター
バックグラウンド クォータ リミッターに関連するコンフィグレーション項目。
TiKV がデプロイされているマシンのリソースが限られているとします。たとえば、4v の CPU と 16 G のメモリしかないとします。このような状況では、TiKV のバックグラウンドで処理される計算や読み取り/書き込み要求が多すぎて、フォアグラウンドで使用される CPU リソースがそのような要求の処理に占有され、TiKV のパフォーマンスの安定性に影響する可能性があります。この状況を回避するには、バックグラウンド クォータ関連の設定項目を使用して、バックグラウンドで使用される CPU リソースを制限できます。要求が Quota Limiter をトリガーすると、その要求は TiKV が CPU リソースを解放するまでしばらく待機する必要があります。正確な待機時間は要求の数によって異なり、最大待機時間はmax-delay-durationの値以下になります。
background-cpu-time v6.2.0 の新機能
- TiKV バックグラウンドで読み取りおよび書き込み要求を処理するために使用される CPU リソースのソフト制限。
- デフォルト値:
0(制限なしを意味します) - 単位: millicpu (たとえば、
1500バックグラウンド リクエストが 1.5v CPU を消費することを意味します)
background-write-bandwidth v6.2.0 の新機能
- バックグラウンド トランザクションがデータを書き込む帯域幅のソフト制限。
- デフォルト値:
0KiB(制限なしを意味します)
background-read-bandwidth v6.2.0 の新機能
- バックグラウンド トランザクションとコプロセッサーがデータを読み取る帯域幅のソフト制限。
- デフォルト値:
0KiB(制限なしを意味します)
enable-auto-tune v6.2.0 の新機能
- クォータの自動調整を有効にするかどうかを決定します。この設定項目を有効にすると、TiKVはTiKVインスタンスの負荷に基づいて、バックグラウンドリクエストのクォータを動的に調整します。
- デフォルト値:
false(自動調整が無効であることを意味します)
causal-ts v6.1.0 の新機能
TiKV API V2が有効な場合にタイムスタンプを取得するためのコンフィグレーション項目( storage.api-version = 2 )。
書き込みレイテンシーを削減するため、TiKVは定期的にタイムスタンプのバッチを取得し、ローカルにキャッシュします。キャッシュされたタイムスタンプは、PDへの頻繁なアクセスを回避し、TSOサービスの短期的な障害を許容するのに役立ちます。
alloc-ahead-buffer v6.4.0 の新機能
- 事前に割り当てられた TSO キャッシュ サイズ (期間内)。
- TiKV がこの設定項目で指定された期間に基づいて TSO キャッシュを事前割り当てすることを示します。TiKV は前回の期間に基づいて TSO の使用量を推定し、
alloc-ahead-buffer満たす TSO をローカルに要求してキャッシュします。 - この設定項目は、TiKV API V2が有効になっている場合にPD障害の許容度を高めるためによく使用されます(
storage.api-version = 2)。 - この設定項目の値を大きくすると、TSO消費量とTiKVのメモリオーバーヘッドが増加する可能性があります。十分なTSOを確保するには、PDの
tso-update-physical-interval設定項目を減らすことをお勧めします。 - テストによると、
alloc-ahead-bufferデフォルト値の場合、PD リーダーが失敗して別のノードに切り替わると、書き込み要求のレイテンシーが短期的に増加し、QPS が減少 (約 15%) します。 - ビジネスへの影響を回避するには、PD で
tso-update-physical-interval = "1ms"設定し、TiKV で次の設定項目を設定します。causal-ts.alloc-ahead-buffer = "6s"causal-ts.renew-batch-max-size = 65536causal-ts.renew-batch-min-size = 2048
- デフォルト値:
3s
renew-interval
- ローカルにキャッシュされたタイムスタンプが更新される間隔。
renew-interval間隔で、TiKV はタイムスタンプ更新のバッチ処理を開始し、前回の期間のタイムスタンプ消費量とalloc-ahead-bufferの設定に応じて、キャッシュされたタイムスタンプの数を調整します。このパラメータを大きすぎる値に設定すると、最新の TiKV ワークロードの変更が時間内に反映されません。このパラメータを小さすぎる値に設定すると、PD の負荷が増加します。書き込みトラフィックの変動が激しい場合、タイムスタンプが頻繁に枯渇する場合、および書き込みレイテンシーが増加する場合は、このパラメータを小さい値に設定できます。同時に、PD の負荷も考慮する必要があります。- デフォルト値:
"100ms"
renew-batch-min-size
- タイムスタンプ要求内の TSO の最小数。
- TiKVは、前期間のタイムスタンプ消費量に応じて、キャッシュされるタイムスタンプの数を調整します。必要なTSOが少数の場合、TiKVは要求されるTSOの数を
renew-batch-min-size達するまで減らします。アプリケーションで大規模なバースト書き込みトラフィックが頻繁に発生する場合は、このパラメータを必要に応じて大きな値に設定できます。このパラメータは、単一のtikvサーバーのキャッシュサイズであることに注意してください。パラメータを大きすぎる値に設定し、クラスターに多数のtikvサーバーが含まれている場合、TSOの消費が急激に増加します。 - GrafanaのTiKV-RAW > Causal timestampパネルでは、 TSOバッチサイズは、アプリケーションのワークロードに応じて動的に調整された、ローカルにキャッシュされたタイムスタンプの数です。このメトリックを参照して
renew-batch-min-size調整できます。 - デフォルト値:
100
renew-batch-max-size v6.4.0 の新機能
- タイムスタンプ要求内の TSO の最大数。
- デフォルトのTSO物理時間更新間隔(
50ms)では、PDは最大262144個のTSOを提供します。要求されたTSOがこの数を超えると、PDはそれ以上のTSOを提供しなくなります。この設定項目は、TSOの枯渇と、TSO枯渇による他の業務への悪影響を回避するために使用されます。高可用性を向上させるためにこの設定項目の値を増やす場合は、十分なTSOを確保するために、同時にtso-update-physical-intervalの値を減らす必要があります。 - デフォルト値:
8192
リソース管理
TiKVstorageレイヤーのリソース制御に関するコンフィグレーション項目。
enabled v6.6.0 の新機能
- 対応するリソースグループのいずれかリクエストユニット(RU)に基づいて、ユーザーのフォアグラウンド読み取り/書き込み要求のスケジュールを有効にするかどうかを制御します。TiDBリソースグループとリソース制御の詳細については、 リソース制御を使用してリソースグループの制限とフロー制御を実現する参照してください。
- この設定項目を有効にすると、TiDBで`tidb_enable_resource_control有効になっている場合にのみ機能します。この設定項目を有効にすると、TiKVは優先度キューを使用して、フォアグラウンドユーザーからのキューに入れられた読み取り/書き込み要求をスケジュールします。要求のスケジュール優先度は、その要求を受信するリソースグループが既に消費しているリソース量に反比例し、対応するリソースグループのクォータに正比例します。
- デフォルト値:
true。リソース グループの RU に基づくスケジュールが有効であることを意味します。
priority-ctl-strategy v8.4.0 の新機能
低優先度タスクのフロー制御戦略を指定します。TiKVは、低優先度タスクにフロー制御を適用することで、高優先度タスクの実行を優先します。
- 値のオプション:
aggressive: このポリシーは、高優先度タスクのパフォーマンスを優先し、高優先度タスクのスループットとレイテンシーに大きな影響が及ばないようにしますが、低優先度タスクの実行速度は低下します。moderate: このポリシーは、低優先度のタスクにバランスの取れたフロー制御を課し、高優先度のタスクへの影響を少なくします。conservative: このポリシーは、システム リソースが完全に利用されることを優先し、低優先度のタスクが必要に応じてシステムの利用可能なリソースを完全に利用できるようにすることで、高優先度のタスクのパフォーマンスに大きな影響を与えます。
- デフォルト値:
moderate。
スプリット
ロードベーススプリットに関連するコンフィグレーション項目です。
byte-threshold v5.0 の新機能
リージョンがホットスポットとして識別されるトラフィックしきい値を制御します。
デフォルト値:
region-split-size4 GiB 未満の場合、1 秒あたり30MiBなります。region-split-size4 GiB 以上の場合は 1 秒あたり100MiBなります。
qps-threshold
リージョンがホットスポットとして識別される QPS しきい値を制御します。
デフォルト値:
region-split-size4 GiB 未満の場合は3000。region-split-size4 GiB 以上の場合は7000。
region-cpu-overload-threshold-ratio v6.2.0の新機能
リージョンがホットスポットとして識別される CPU 使用率のしきい値を制御します。
デフォルト値:
region-split-size4 GiB 未満の場合は0.25。region-split-size4 GiB 以上の場合は0.75。
メモリv7.5.0 の新機能
enable-heap-profiling v7.5.0 の新機能
- TiKV のメモリ使用量を追跡するためにヒープ プロファイリングを有効にするかどうかを制御します。
- デフォルト値:
true
profiling-sample-per-bytes v7.5.0 の新機能
- ヒープ プロファイリングによって毎回サンプリングされるデータの量を、最も近い 2 の累乗に切り上げて指定します。
- デフォルト値:
512KiB
enable-thread-exclusive-arenaバージョン 8.1.0 の新機能
- 各 TiKV スレッドのメモリ使用量を追跡するために、TiKV スレッド レベルでメモリ割り当てステータスを表示するかどうかを制御します。
- デフォルト値:
true
インメモリエンジンv8.5.0 の新機能
storageレイヤーに関連する TiKV MVCC インメモリ エンジン (IME) 構成項目。
v8.5.0の新機能enable
注記:
この構成項目は構成ファイルで構成できますが、SQL ステートメントを使用してクエリすることはできません。
- マルチバージョンクエリを高速化するためにインメモリエンジンを有効にするかどうか。インメモリエンジンの詳細については、 TiKV MVCC インメモリエンジン参照してください。
- デフォルト値:
false(メモリ内エンジンは無効) - TiKV ノードには少なくとも 8 GiB のメモリを構成することをお勧めします。最適なパフォーマンスを得るには 32 GiB 以上を構成してください。
- TiKVノードの利用可能なメモリが不足している場合、この設定項目を
trueに設定しても、インメモリエンジンは有効化されません。このような場合は、TiKVログファイルで"in-memory engine is disabled because"含むメッセージを確認し、インメモリエンジンが有効化されない理由を確認してください。
capacity v8.5.0 の新機能
注記:
- インメモリ エンジンを有効にすると、
block-cache.capacity自動的に 10% 減少します。capacity手動で設定した場合、block-cache.capacity自動的に減少しません。この場合、OOMを回避するために手動で値を調整する必要があります。
- TiKV MVCC インメモリエンジン使用できる最大メモリサイズを制御します。メモリ容量によって、キャッシュできるリージョンの数が決まります。容量がいっぱいになると、インメモリエンジンはリージョンMVCCの冗長性に基づいて新しいリージョンをロードし、キャッシュされているリージョンを削除します。
- デフォルト値:
min(10% of the total system memory, 5 GiB)
gc-run-intervalバージョン8.5.0の新機能
- インメモリエンジンGCがMVCCバージョンをキャッシュする時間間隔を制御します。このパラメータを減らすとGCの頻度が上がり、MVCCバージョンの数が減りますが、GCのCPU消費量が増加し、インメモリエンジンのキャッシュミスの可能性が高まります。
- デフォルト値:
"3m"
mvcc-amplification-threshold 8.5.0の新機能
- インメモリエンジンがリージョンを選択してロードする際のMVCC読み取り増幅のしきい値を制御します。デフォルト値は
10で、リージョン内の1行の読み取りに10を超えるMVCCバージョンの処理が必要な場合、このリージョンはインメモリエンジンにロードされる可能性があることを示します。 - デフォルト値:
10