Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions dynamic-config.md
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,9 @@ show warnings;
| {db-name}.{cf-name}.soft-pending-compaction-bytes-limit | pending compaction bytes 的软限制 |
| {db-name}.{cf-name}.hard-pending-compaction-bytes-limit | pending compaction bytes 的硬限制 |
| {db-name}.{cf-name}.titan.blob-run-mode | 处理 blob 文件的模式 |
| {db-name}.{cf-name}.titan.min-blob-size | 数据存储在 Titan 的阈值,当数据的 value 达到该阈值时将存储在 Titan 的 Blob 文件中 |
| {db-name}.{cf-name}.titan.blob-file-compression | Titan 的 Blob 文件所使用的压缩算法 |
| {db-name}.{cf-name}.titan.discardable-ratio | Titan 数据文件 GC 的垃圾数据比例阈值,当一个 Blob 文件中无用数据的比例超过该阈值时将会触发 Titan GC |
| server.grpc-memory-pool-quota | gRPC 可使用的内存大小限制 |
| server.max-grpc-send-msg-len | gRPC 可发送的最大消息长度 |
| server.raft-msg-max-batch-size | 单个 gRPC 消息可包含的最大 Raft 消息个数 |
Expand Down
9 changes: 8 additions & 1 deletion storage-engine/titan-configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,10 @@ Titan 对 RocksDB 兼容,也就是说,使用 RocksDB 存储引擎的现有 T

通过调整 [`rate-bytes-per-sec`](/tikv-configuration-file.md#rate-bytes-per-sec),你可以限制 RocksDB compaction 的 I/O 速率,从而在高流量时减少对前台读写性能的影响。

### `shared-blob-cache`(从 v8.0.0 版本开始引入)

你可以通过 [`shared-blob-cache`](/tikv-configuration-file.md#shared-blob-cache从-v800-版本开始引入) 控制是否启用 Titan Blob 文件和 RocksDB Block 文件的共享缓存,默认值为 `true`。当开启共享缓存时,Block 文件具有更高的优先级,TiKV 将优先满足 Block 文件的缓存需求,然后将剩余的缓存用于 Blob 文件。

### Titan 配置文件示例

下面是一个 Titan 配置文件的样例,更多的参数说明,请参考 [TiKV 配置文件描述](/tikv-configuration-file.md)。你可以使用 TiUP [修改配置参数](/maintain-tidb-using-tiup.md#修改配置参数),也可以通过[在 Kubernetes 中配置 TiDB 集群](https://docs.pingcap.com/zh/tidb-in-kubernetes/stable/configure-a-tidb-cluster)修改配置参数。
Expand All @@ -123,7 +127,6 @@ max-background-gc = 1
min-blob-size = "32KB"
blob-file-compression = "zstd"
zstd-dict-size = "16KB"
blob-cache-size = "0GB"
discardable-ratio = 0.5
blob-run-mode = "normal"
level-merge = false
Expand Down Expand Up @@ -156,6 +159,10 @@ level-merge = false

2. (可选)使用 `tikv-ctl` 执行全量数据整理 (Compaction)。这一步骤将消耗大量 I/O 和 CPU 资源。

> **警告:**
>
> 如果在磁盘空间不足时执行以下命令,可能会导致整个集群无可用空间从而无法写入数据。

```bash
tikv-ctl --pd <PD_ADDR> compact-cluster --bottommost force
```
Expand Down
7 changes: 6 additions & 1 deletion tikv-configuration-file.md
Original file line number Diff line number Diff line change
Expand Up @@ -1661,9 +1661,14 @@ rocksdb defaultcf titan 相关的配置项。
+ Blob 文件的 cache 大小。
+ 默认值:0GiB
+ 最小值:0
+ 推荐值:建议在数据库稳定运行后,根据监控把 RocksDB block cache (`storage.block-cache.capacity`) 设置为能刚好维持接近 95% 以上的 Block Cache 命中率,`blob-cache-size` 设置为 `内存大小 * 50% 再减去 block cache 的大小`。这是为了保证 block cache 足够缓存整个 RocksDB 的前提下,blob cache 尽量大。但 Blob cache 的值不应该设置过大,否则会导致 block cache 命中率大幅下降
+ 推荐值:0。从 v8.0.0 开始,TiKV 引入了 `shared-blob-cache` 配置项并默认开启,因此无需再单独设置 `blob-cache-size`。只有当 `shared-blob-cache` 设置为 `false` 时,`blob-cache-size` 的设置才生效
+ 单位:KiB|MiB|GiB

### `shared-blob-cache`(从 v8.0.0 版本开始引入)

+ 是否启用 Titan Blob 文件和 RocksDB Block 文件的共享缓存
+ 默认值:`true`。当开启共享缓存时,Block 文件具有更高的优先级,TiKV 将优先满足 Block 文件的缓存需求,然后将剩余的缓存用于 Blob 文件。

### `min-gc-batch-size`

+ 做一次 GC 所要求的最低 Blob 文件大小总和。
Expand Down