TIDB3上有大量 "frames": null 的region,该如何处理?

机器上通过监控发现机器对应的region块极度的不平衡。
通过以下命令扫描出 id为32769177 下的所有region块
[tidb@pro-bi-tidb-191 bin]$ ./pd-ctl -u “http://192.168.x.xxx” -d region store 32769177 >4.log
然后批量查看region块对应的表,发现还是有很多 “frames”: null 的块,请问这个改怎么处理?

[tidb@pro-bi-tidb-191 bin]$ curl http://192.168.1.xxx:10080/regions/44956375
{
“region_id”: 44956375,
“start_key”: “dIAAAAAAAdtF”,
“end_key”: “dIAAAAAAAdtH”,
“frames”: null
}[tidb@pro-bi-tidb-191 bin]$ curl http://192.168.1.xxx:10080/regions/45820623
{
“region_id”: 45820623,
“start_key”: “dIAAAAAAAnPz”,
“end_key”: “dIAAAAAAAnP1”,
“frames”: null
}[tidb@pro-bi-tidb-191 bin]$ curl http://192.168.1.xxx:10080/regions/46485342
{
“region_id”: 46485342,
“start_key”: “dIAAAAAAAvFpX3KAAAAAAEanyw==”,
“end_key”: “dIAAAAAAAvFpX3KAAAAAAGEd5w==”,
“frames”: null
}

2 个赞

frames字段表示该region上表和索引的信息,如果表很小可能有多个。如果是null可能是表drop后导致的空region,系统默认会对相邻的空region进行合并,可找一个region看下他下一个region的状态

3 个赞

这个有什么更好的处理方法吗?

1 个赞

可以在 asktug 上搜一下 region merge 相关的帖子,把 region merge 的参数调整一下,观看一下 相关调度(不同集群版本,参数可能存在细微差异)

region merge 的参数,现在region块,出现了很大的不平衡
» config show
{
“max-snapshot-count”: 3,
“max-pending-peer-count”: 16,
“max-merge-region-size”: 20,
“max-merge-region-keys”: 200000,
“split-merge-interval”: “1h0m0s”,
“patrol-region-interval”: “50ms”,
“max-store-down-time”: “30m0s”,
“leader-schedule-limit”: 8,
“region-schedule-limit”: 100,
“replica-schedule-limit”: 4,
“merge-schedule-limit”: 8,
“tolerant-size-ratio”: 5,
“low-space-ratio”: 0.8,
“high-space-ratio”: 0.6,
“disable-raft-learner”: “false”,
“disable-remove-down-replica”: “false”,
“disable-replace-offline-replica”: “false”,
“disable-make-up-replica”: “false”,
“disable-remove-extra-replica”: “false”,
“disable-location-replacement”: “false”,
“disable-namespace-relocation”: “false”,
“schedulers-v2”: [
{
“type”: “balance-region”,
“args”: null,
“disable”: false
},
{
“type”: “balance-leader”,
“args”: null,
“disable”: false
},
{
“type”: “hot-region”,
“args”: null,
“disable”: false
},
{
“type”: “label”,
“args”: null,
“disable”: false