TiKV中的region是否预先分配好的?如何查看当前所有region大小的分布情况?

【 TiDB 使用环境】生产\测试环境\ POC
【 TiDB 版本】
【遇到的问题】
【复现路径】做过哪些操作出现的问题
【问题现象及影响】

  1. 不是
  2. 可以用 pd-ctl 导出所有 region 信息,然后使用 jq,或者写脚本分析 json 内容

查询region分布可以Information-schema下tikv_region_status,tikv_store_status,tikv_region_peers 关联查询,或 pd-ctl region store xxx查看某些store上的region

tikv的region首先是集群启动时,会有个开天辟地的region,范围是startkey="",endkey="",能容纳所有的key,然后不断的分裂。类似细胞分裂似的,一个变俩这样。

grafana上有个regionsize的面板,可以看到regionsize的大小统计信息。

预先分配,手动分配,自动分配都可以

有啥命令可以查看分配情况吗

https://docs.pingcap.com/zh/tidb/stable/sql-statement-split-region#split-region-使用文档
https://docs.pingcap.com/zh/tidb/stable/tune-region-performance#使用-region-split-size-调整-region-大小
Region 是如何进行分裂的?
Region 不是前期划分好的,但确实有 Region 分裂机制。当 Region 的大小超过参数 region-max-size 或 region-max-keys 的值时,就会触发分裂,分裂后的信息会汇报给 PD。

默认是到达96MB大小就分裂吗?

是的,Regon 的分裂和调度逻辑,可以参考一下上面的文档链接。

达到144MB大小,会一分二。

听课程上:有的讲的96MB就一分为二,有的讲的到144MB一分为二,不清楚到底多大分裂?

  1. 默认一个 Region 大小为 96MB(由 TiKV 配置参数 region-split-size 控制);

  2. 当一个 Region 膨胀到超过 144MB(由 TiKV 配置参数 region-max-size控制,默认 96MBx3/2=144MB)时,则一分为二。

也就是 region-max-size =1.5*region-split-size,默认达到144MB是开始分裂,:+1:

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