TiDB 默认 gc 策略会对集群有影响吗

  • 【TiDB 版本】:4.0.0ga
  • 【问题描述】:集群从2.1.3升级到4.0.0后一直无法稳定下来,看监控怀疑是不是gc引起的?

当前的配置:

+--------------------------+--------------------------------------------------------------------------------------+
| VARIABLE_NAME            | VARIABLE_VALUE                                                                       |
+--------------------------+--------------------------------------------------------------------------------------+
| bootstrapped             | True                                                                                 |
| tidb_server_version      | 47                                                                                   |
| tikv_gc_leader_uuid      | 5ca6ff655dc0002                                                                      |
| tikv_gc_leader_desc      | host:db04, pid:32075, start at 2020-06-10 10:09:46.88374466 +0800 CST m=+0.930456411 |
| tikv_gc_leader_lease     | 20200611-15:45:46 +0800                                                              |
| tikv_gc_run_interval     | 10m0s                                                                                |
| tikv_gc_life_time        | 10m0s                                                                                |
| tikv_gc_last_run_time    | 20200611-15:33:46 +0800                                                              |
| tikv_gc_safe_point       | 20200610-15:40:01 +0800                                                              |
| tikv_gc_concurrency      | 1                                                                                    |
| system_tz                | Asia/Shanghai                                                                        |
| new_collation_enabled    | False                                                                                |
| tikv_gc_enable           | true                                                                                 |
| tikv_gc_auto_concurrency | true                                                                                |
| tikv_gc_mode             | distributed                                                                          |
+--------------------------+--------------------------------------------------------------------------------------+

当tikv_gc_auto_concurrency为true的时候,tikv_gc_concurrency将不起作用,而会并行的向所有tikv发送gc请求

而tikv的默认设置:

[gc]
## The number of keys to GC in one batch.
# batch-keys = 512

## Max bytes that GC worker can write to rocksdb in one second.
## If it is set to 0, there is no limit.
# max-write-bytes-per-sec = "0"

即tikv gc不会限制io,这样的设计会不会导致gc把集群的IO资源全部占用光了呢?

  1. gc 有可能占用大量 IO,为什么怀疑是 gc 导致的?
  2. 不稳定是指什么? 可以发送问题发生时的 detail-tikv 监控看下,多谢。

确实试了设置 tikv_gc_auto_concurrency = false, 还是发生同样的问题。 今天一共出现了5次, 每次整个集群10几分钟分钟无法提供服务。

之前用的2.1.3很长的时间,处于一个相对比较稳定的状态,每天的读写请求也不少, 自从升级到4.0.0之后一直无法长时间的稳定下来,业务基本上无法使用了。

  1. 无法提供服务是业务不能连接还是什么? 你们查看当时的日志,都有什么报错嘛?
  2. 查看监控信息是否有资源瓶颈?
  3. 麻烦先找一个发生问题具体的时间点,查看一下都有哪些问题,多谢。