TIDBv4.0.15存在Region合并的问题

【 TiDB 使用环境】生产环境
【 TiDB 版本】4.0.15
【复现路径】模拟生产环境大量的读写和truncate table
【遇到的问题:问题现象及影响】tikv的raft线程非常繁忙,分析发现大量region为没有合并
【资源配置】
【附件:截图/日志/监控】

mysql> select DB_NAME,TABLE_NAME,count(distinct(REGION_ID)) as num from TIKV_REGION_STATUS group by TABLE_NAME;
±-------------------±--------------------------------------------------±-------+
| DB_NAME | TABLE_NAME | num |
±-------------------±--------------------------------------------------±-------+
| NULL | NULL | 122183 |

mysql> select REGION_ID,TABLE_ID,TABLE_NAME,WRITTEN_BYTES,READ_BYTES from TIKV_REGION_STATUS limit 100;
±----------±---------±----------------------------------±--------------±-----------+
| REGION_ID | TABLE_ID | TABLE_NAME | WRITTEN_BYTES | READ_BYTES |
±----------±---------±----------------------------------±--------------±-----------+
| 200841 | NULL | NULL | 0 | 0 |
| 606145 | NULL | NULL | 0 | 0 |
| 310921 | NULL | NULL | 0 | 0 |
| 161929 | NULL | NULL | 0 | 0 |
| 214477 | NULL | NULL | 0 | 0 |
| 294165 | NULL | NULL | 0 | 0 |
| 310929 | NULL | NULL | 0 | 0 |
| 485429 | NULL | NULL | 0 | 0 |
| 198641 | NULL | NULL | 0 | 0 |

show config where name like ‘%enable-cross-table-merge%’

可以开启跨表合并,4.0这个参数默认是关闭的

3 个赞

4.0的版本很老了,如果可以,还是建议升级到6版本以后,性能和稳定性都有质的提升

1 个赞

哦,学到了enable-cross-table-merge。厉害

通过mysql客户端设置为true, 但这个配置多久生效?

mysql> set config pd schedule.enable-cross-table-merge=‘true’;
Query OK, 0 rows affected (0.16 sec)

mysql> show config where name like ‘%enable-cross-table-merge%’;
±-----±----------------------------------------------±----------------------------------±------+
| Type | Instance | Name | Value |
±-----±----------------------------------------------±----------------------------------±------+
| pd | basic-pd-1.basic-pd-peer.maipu-bdwan.svc:2379 | schedule.enable-cross-table-merge | true |
| pd | basic-pd-2.basic-pd-peer.maipu-bdwan.svc:2379 | schedule.enable-cross-table-merge | true |
±-----±----------------------------------------------±----------------------------------±------+
2 rows in set (0.18 sec)

改完后重启生效

我在生产环境修改后没有重启,region数也在逐步减少。 确认需要重启?
配置存放在etcd还是哪里,是否重启配置会掉

  1. 如果是通过edit-config方式改的,需要重启
  2. 还有一种事在线更改的方式,这种不需要重启。
  3. PD 可在线修改的配置项,成功修改后则会持久化到 etcd 中,不会对配置文件进行持久化,后续以 etcd 中的配置为准。

4.X不是所有的参数都支持在线修改。
可参考: 在线修改集群配置 | PingCAP 文档中心

1 个赞

这个参数如果是通过pd-ctl 修改完毕之后不需要重启集群吧?

是的。。

pd 参数通过set改了持久化到etcd中,在集群参数文件里面是查不到的,会立刻生效。

通过mysql客户端修改参数和 pd-ctl、tikv-ctl修改参数的逻辑有什么差别。是否就是把mysql的操作解析成pd-ctl去完成,还是刚好相反,把pd-ctl的命令通过mysql去执行。

技术细节不清楚,只是sql执行方便很多

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。