天天看點

TiDB大規模删除實踐

作者:dbapower​

TiDB叢集大規模删除實踐

一、 背景

叢集在寫入了一定的時間後,是存在一些曆史可以删除的資料的,為了對叢集的空間釋放,我和業務一并讨論和計劃了待删除的表,但是在drop資料時發現叢集QPS有抖動,duration異常升高,經過排查發現觸發了compaction的流控,導緻業務的寫入産生了積壓。

叢集配置

叢集版本:v3.0.5
叢集配置:普通SSD磁盤,128G記憶體,40 核cpu
tidb21 TiDB/PD/pump/prometheus/grafana/CCS
tidb22 TiDB/PD/pump
tidb23 TiDB/PD/pump
tidb01 TiKV
tidb02 TiKV
tidb03 TiKV
tidb04 TiKV
tidb05 TiKV
tidb06 TiKV
tidb07 TiKV
tidb08 TiKV
tidb09 TiKV
tidb10 TiKV
tidb11 TiKV
tidb12 TiKV
tidb13 TiKV
tidb14 TiKV
tidb15 TiKV
tidb16 TiKV
tidb17 TiKV
tidb18 TiKV
tidb19 TiKV
tidb20 TiKV
wtidb29 TiKV
wtidb30 TiKV      
二、現象

我們首先收到了如下報警:

TiDB大規模删除實踐

乍一看引起的報警問題還是蠻多的,但其實看本質和操作時間點,是在叢集drop大批量資料後(本案例是drop近30T資料),且到經過GC life time後觸發的,是以基本定位到主要是因為drop大批量表,GC回收時導緻的

看到pending_task,write_stall等報警,第一反應就是GC回收空間時占用IO導緻了叢集資源争用。

業務也發現積壓和OPS抖動,duration升高,如下圖\

TiDB大規模删除實踐
三、排查步驟

根據以往經驗,pending_task和stall我們先看一下叢集的繁忙狀态:

TiDB大規模删除實踐

果然,我們得到了預期的結果,叢集在drop操作後爆出了server is busy,官網關于server is busy有如下相關内容:

通過檢視監控:Grafana -> TiKV -> errors 确認具體 busy 原因。在ERROR頁面我們看到了server is busy 有峰值,這是 TiKV 自身的流控機制,TiKV 通過這種方式告知 tidb/ti-client 目前 TiKV 的壓力過大,稍後再嘗試,本案例是因為大批量drop導緻的busy。

同時,我們發現告警中包含了write_stall,關于write stall,一個 TiKV 包含兩個 RocksDB 執行個體,一個用于存儲 Raft 日志,位于 data/raft。另一個用于存儲真正的資料,位于 data/db。通過 grep "Stalling" RocksDB 日志檢視 stall 的具體原因。
• level0 sst 太多導緻 stall,可以添加參數 [rocksdb] max-sub-compactions = 2(或者 3),加快 level0 sst 往下 compact 的速度。該參數的意思是将從 level0 到 level1 的 compaction 任務最多切成 max-sub-compactions 個子任務交給多線程并發執行,這個我們現在開的是4。
• pending compaction bytes 太多導緻 stall,磁盤 I/O 能力在業務高峰跟不上寫入,可以通過調大對應 Column Family (CF) 的 soft-pending-compaction-bytes-limit 和 hard-pending-compaction-bytes-limit 參數來緩解:
• 如果 pending compaction bytes 達到該門檻值,RocksDB 會放慢寫入速度。預設值 64GB,[rocksdb.defaultcf] soft-pending-compaction-bytes-limit = "128GB"。
• 如果 pending compaction bytes 達到該門檻值,RocksDB 會 stop 寫入,通常不太可能觸發該情況,因為在達到 soft-pending-compaction-bytes-limit 的門檻值之後會放慢寫入速度。預設值 256GB,hard-pending-compaction-bytes-limit = "512GB"。
• 如果磁盤 IO 能力持續跟不上寫入,建議擴容。如果磁盤的吞吐達到了上限(例如 SATA SSD 的吞吐相對 NVME SSD 會低很多)導緻 write stall,但是 CPU 資源又比較充足,可以嘗試采用壓縮率更高的壓縮算法來緩解磁盤的壓力,用 CPU 資源換磁盤資源。
• 比如 default cf compaction 壓力比較大,調整參數 [rocksdb.defaultcf] compression-per-level = ["no", "no", "lz4", "lz4", "lz4", "zstd", "zstd"] 改成 compression-per-level = ["no", "no", "zstd", "zstd", "zstd", "zstd", "zstd"]。      

其實手冊裡已經寫得很詳細了,上面關于write stall的多個處理方式都是可以借鑒的。

我們在日志中發現了如下内容:

2020/06/30-12:36:33.758200 7f3586fff700 [WARN] [db/column_family.cc:823] [write] Stalling writes because of estimated pending compaction bytes 69565867323 rate 13421767
2020/06/30-12:36:34.692021 7f359727e700 [WARN] [db/column_family.cc:823] [write] Stalling writes because of estimated pending compaction bytes 69653348050 rate 10737413
2020/06/30-12:36:34.692218 7f3597e7f700 [WARN] [db/column_family.cc:823] [write] Stalling writes because of estimated pending compaction bytes 69653348050 rate 8589930
2020/06/30-12:36:35.767359 7f35887fd700 [WARN] [db/column_family.cc:823] [write] Stalling writes because of estimated pending compaction bytes 69556916359 rate 10737412
2020/06/30-12:36:36.668152 7f35853ff700 [WARN] [db/column_family.cc:823] [write] Stalling writes because of estimated pending compaction bytes 69372668753 rate 13421765
2020/06/30-12:36:36.668323 7f3587dfc700 [WARN] [db/column_family.cc:823] [write] Stalling writes because of estimated pending compaction bytes 69372668753 rate 10737412
2020/06/30-12:36:37.834539 7f359727e700 [WARN] [db/column_family.cc:823] [write] Stalling writes because of estimated pending compaction bytes 68959655469 rate 13421765
2020/06/30-12:36:37.834705 7f35965ff700 [WARN] [db/column_family.cc:823] [write] Stalling writes because of estimated pending compaction bytes 68959655469 rate 10737412
2020/06/30-12:36:37.834780 7f35861fe700 [WARN] [db/column_family.cc:823] [write] Stalling writes because of estimated pending compaction bytes 68959655469 rate 8589929
2020/06/30-12:36:37.834845 7f3586fff700 [WARN] [db/column_family.cc:823] [write] Stalling writes because of estimated pending compaction bytes 68959655469 rate 6871943
2020/06/30-12:36:37.834912 7f3597e7f700 [WARN] [db/column_family.cc:823] [write] Stalling writes because of estimated pending compaction bytes 68959655469 rate 5497554
2020/06/30-12:36:39.076138 7f35887fd700 [WARN] [db/column_family.cc:823] [write] Stalling writes because of estimated pending compaction bytes 68881689347 rate 6871942
2020/06/30-12:36:40.659559 7f3587dfc700 [WARN] [db/column_family.cc:823] [write] Stalling writes because of estimated pending compaction bytes 68785639852 rate 8589927      

這裡日志很明顯是因為compaction到達了門檻值限制,引發流控,進一步導緻業務寫入産生了積壓。

監控裡也能看到相關超門檻值的情況:

這裡可以看到max到了270

TiDB大規模删除實踐

這裡可看出和drop後經過gc lifetime的時間是吻合的,11:35完成了drop操作,經過了gc life time周期之後(這個叢集是預設的10m),11:45出現了異常。\

TiDB大規模删除實踐

這裡能看出compaction相關的監控增長非常明顯,compaction pending bytes也能看出超出了門檻值。\

TiDB大規模删除實踐

我們通過tikv-ctl來對所有kv的進行線上配置,臨時調高其門檻值,來避免因為流控引發的業務寫入積壓問題。 soft_pending_compaction_bytes_limit預設64G,hard_pending_compaction_bytes_limit預設256GB。關于這兩個參數的含義,上文已經有做說明,當超過門檻值時,主要是RocksDB的寫入速度會受到影響。

./tikv-ctl --host=tidb01:20160 modify-tikv-config -m kvdb -n write.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb02:20160 modify-tikv-config -m kvdb -n write.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb03:20160 modify-tikv-config -m kvdb -n write.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb04:20160 modify-tikv-config -m kvdb -n write.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb05:20160 modify-tikv-config -m kvdb -n write.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb06:20160 modify-tikv-config -m kvdb -n write.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb07:20160 modify-tikv-config -m kvdb -n write.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb08:20160 modify-tikv-config -m kvdb -n write.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb09:20160 modify-tikv-config -m kvdb -n write.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb10:20160 modify-tikv-config -m kvdb -n write.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb11:20160 modify-tikv-config -m kvdb -n write.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb12:20160 modify-tikv-config -m kvdb -n write.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb13:20160 modify-tikv-config -m kvdb -n write.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb14:20160 modify-tikv-config -m kvdb -n write.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb15:20160 modify-tikv-config -m kvdb -n write.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb16:20160 modify-tikv-config -m kvdb -n write.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb17:20160 modify-tikv-config -m kvdb -n write.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb18:20160 modify-tikv-config -m kvdb -n write.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb19:20160 modify-tikv-config -m kvdb -n write.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb20:20160 modify-tikv-config -m kvdb -n write.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=wtidb29:20160 modify-tikv-config -m kvdb -n write.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=wtidb30:20160 modify-tikv-config -m kvdb -n write.soft_pending_compaction_bytes_limit -v 256GB




./tikv-ctl --host=tidb01:20160 modify-tikv-config -m kvdb -n write.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb02:20160 modify-tikv-config -m kvdb -n write.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb03:20160 modify-tikv-config -m kvdb -n write.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb04:20160 modify-tikv-config -m kvdb -n write.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb05:20160 modify-tikv-config -m kvdb -n write.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb06:20160 modify-tikv-config -m kvdb -n write.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb07:20160 modify-tikv-config -m kvdb -n write.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb08:20160 modify-tikv-config -m kvdb -n write.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb09:20160 modify-tikv-config -m kvdb -n write.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb10:20160 modify-tikv-config -m kvdb -n write.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb11:20160 modify-tikv-config -m kvdb -n write.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb12:20160 modify-tikv-config -m kvdb -n write.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb13:20160 modify-tikv-config -m kvdb -n write.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb14:20160 modify-tikv-config -m kvdb -n write.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb15:20160 modify-tikv-config -m kvdb -n write.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb16:20160 modify-tikv-config -m kvdb -n write.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb17:20160 modify-tikv-config -m kvdb -n write.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb18:20160 modify-tikv-config -m kvdb -n write.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb19:20160 modify-tikv-config -m kvdb -n write.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb20:20160 modify-tikv-config -m kvdb -n write.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=wtidb29:20160 modify-tikv-config -m kvdb -n write.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=wtidb30:20160 modify-tikv-config -m kvdb -n write.hard_pending_compaction_bytes_limit -v 512GB





./tikv-ctl --host=tidb01:20160 modify-tikv-config -m kvdb -n default.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb02:20160 modify-tikv-config -m kvdb -n default.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb03:20160 modify-tikv-config -m kvdb -n default.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb04:20160 modify-tikv-config -m kvdb -n default.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb05:20160 modify-tikv-config -m kvdb -n default.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb06:20160 modify-tikv-config -m kvdb -n default.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb07:20160 modify-tikv-config -m kvdb -n default.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb08:20160 modify-tikv-config -m kvdb -n default.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb09:20160 modify-tikv-config -m kvdb -n default.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb10:20160 modify-tikv-config -m kvdb -n default.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb11:20160 modify-tikv-config -m kvdb -n default.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb12:20160 modify-tikv-config -m kvdb -n default.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb13:20160 modify-tikv-config -m kvdb -n default.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb14:20160 modify-tikv-config -m kvdb -n default.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb15:20160 modify-tikv-config -m kvdb -n default.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb16:20160 modify-tikv-config -m kvdb -n default.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb17:20160 modify-tikv-config -m kvdb -n default.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb18:20160 modify-tikv-config -m kvdb -n default.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb19:20160 modify-tikv-config -m kvdb -n default.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=tidb20:20160 modify-tikv-config -m kvdb -n default.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=wtidb29:20160 modify-tikv-config -m kvdb -n default.soft_pending_compaction_bytes_limit -v 256GB
./tikv-ctl --host=wtidb30:20160 modify-tikv-config -m kvdb -n default.soft_pending_compaction_bytes_limit -v 256GB


./tikv-ctl --host=tidb01:20160 modify-tikv-config -m kvdb -n default.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb02:20160 modify-tikv-config -m kvdb -n default.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb03:20160 modify-tikv-config -m kvdb -n default.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb04:20160 modify-tikv-config -m kvdb -n default.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb05:20160 modify-tikv-config -m kvdb -n default.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb06:20160 modify-tikv-config -m kvdb -n default.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb07:20160 modify-tikv-config -m kvdb -n default.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb08:20160 modify-tikv-config -m kvdb -n default.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb09:20160 modify-tikv-config -m kvdb -n default.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb10:20160 modify-tikv-config -m kvdb -n default.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb11:20160 modify-tikv-config -m kvdb -n default.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb12:20160 modify-tikv-config -m kvdb -n default.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb13:20160 modify-tikv-config -m kvdb -n default.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb14:20160 modify-tikv-config -m kvdb -n default.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb15:20160 modify-tikv-config -m kvdb -n default.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb16:20160 modify-tikv-config -m kvdb -n default.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb17:20160 modify-tikv-config -m kvdb -n default.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb18:20160 modify-tikv-config -m kvdb -n default.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb19:20160 modify-tikv-config -m kvdb -n default.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=tidb20:20160 modify-tikv-config -m kvdb -n default.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=wtidb29:20160 modify-tikv-config -m kvdb -n default.hard_pending_compaction_bytes_limit -v 512GB
./tikv-ctl --host=wtidb30:20160 modify-tikv-config -m kvdb -n default.hard_pending_compaction_bytes_limit -v 512GB
29      

改完後能看到QPS穩定了,之後逐漸恢複正常,同時write stall消失:

TiDB大規模删除實踐

\

TiDB大規模删除實踐

各類 異常 報警 也 恢複 了 正常

TiDB大規模删除實踐

等待compaction峰值小時後,要記得調回預設值,否則會導緻compaction下不去,這時候占用空間會比較大。

四、相關知識點

開啟 Region Merge

從 TiDB v3.0 開始,Region Merge 預設開啟。本案例中的叢集版本是3.0.5,預設就開啟了。
drop table 後會有空 region ,會增加 raftstore 心跳的負載,通過開啟 Region Merge 能減少 Region 的個數。與 Region Split 相反,Region Merge 是通過排程把相鄰的小 Region 合并的過程。在叢集中删除資料或者執行 Drop Table/Truncate Table 語句後,可以将小 Region 甚至空 Region 進行合并以減少資源的消耗。
通過 pd-ctl 設定以下參數即可開啟 Region Merge:
pd-ctl config set max-merge-region-size 20
pd-ctl config set max-merge-region-keys 200000
pd-ctl config set merge-schedule-limit 8      

相關配置介紹

排程相關的配置項。
max-merge-region-size
• 控制 Region Merge 的 size 上限,當 Region Size 大于指定值時 PD 不會将其與相鄰的 Region 合并。
• 預設: 20
max-merge-region-keys
• 控制 Region Merge 的 key 上限,當 Region key 大于指定值時 PD 不會将其與相鄰的 Region 合并。
• 預設: 200000
split-merge-interval
• 控制對同一個 Region 做 split 和 merge 操作的間隔,即對于新 split 的 Region 一段時間内不會被 merge。
• 預設: 1h      

加速merge操作速度

Region Merge 速度慢也很有可能是受到 limit 配置的限制(merge-schedule-limit 及 region-schedule-limit),或者是與其他排程器産生了競争。具體來說,可有如下處理方式:
• 假如已經從相關 Metrics 得知系統中有大量的空 Region,這時可以通過把 max-merge-region-size 和 max-merge-region-keys 調整為較小值來加快 Merge 速度。這是因為 Merge 的過程涉及到副本遷移,是以 Merge 的 Region 越小,速度就越快。如果生成 Merge Operator 的速度很快,想進一步加快 Region Merge 過程,還可以把 patrol-region-interval 調整為 "10ms" ,這個能加快巡檢 Region 的速度,但是會消耗更多的 CPU 資源。
• 建立過大量表後(包括執行 Truncate Table 操作)又清空了。此時如果開啟了 split table 特性,這些空 Region 是無法合并的,此時需要調整以下參數關閉這個特性:
• TiKV: split-region-on-table 設為 false,該參數不支援動态修改。
• PD:
• key-type 設為 txn 或者 raw,該參數支援動态修改。
• key-type 保持 table,同時設定 enable-cross-table-merge為 true,該參數支援動态修改。
注意:
如果删除了很多數量的 table ,才需要修改上述參數,隻删除一個表或者量級很少就不需要開。
在開啟 placement-rules後,請合理切換 txn和 raw,避免無法正常解碼 key。
• 對于 3.0.4 和 2.1.16 以前的版本,Region 中 Key 的個數(approximate_keys)在特定情況下(大部分發生在删表之後)統計不準确,造成 keys 的統計值很大,無法滿足 max-merge-region-keys 的限制。你可以通過調大 max-merge-region-keys 來避免這個問題。      

大批量删除注意事項

在删除大量資料的時候,建議使用 Delete * from t where xx limit 1000; 這樣的方案,通過循環來删除,用 Affected Rows == 0 作為循環結束條件。
如果一次删除的資料量非常大,這種循環的方式會越來越慢,因為每次删除都是從前向後周遊,前面的删除之後,短時間内會殘留不少删除标記(後續會被 GC 清理掉),影響後面的 Delete 語句。是以可以考慮分區表和實體分表,我們這邊測試發現實體分表的性能高于分區表,是以最終沒有采用分區表的方式。      
TiKV 在 3.0.6 版本開始支援 GC 流控,可通過配置 gc.max-write-bytes-per-sec 限制 GC worker 每秒資料寫入量,降低對正常請求的影響,0 為關閉該功能。該配置可通過 tikv-ctl 動态修改:

tikv-ctl --host=ip:port modify-tikv-config -m server -n gc.max_write_bytes_per_sec -v 10MB