查询TIKV_REGION_STATUS和TIKV_REGION_PEERS表导致PD OOM

背景
想要调查一下某个表的数据分布,所以执行了一下以下SQL

USE INFORMATION_SCHEMA;
SELECT
    p.STORE_ID, count(1)
FROM 
    TIKV_REGION_STATUS s JOIN TIKV_REGION_PEERS p ON s.REGION_ID = p.REGION_ID
WHERE
    s.DB_NAME = "db_name" AND
    s.TABLE_NAME = "tb_name"
GROUP BY p.STORE_ID;

结果PD节点就OOM了,内存曲线如下:(前两个波峰是分别使用limit 1查了两个表,最后一个是使用了JOIN)
image

看了下官方文档介绍,里边有提到如下的描述,是指这两个表的访问是被tidb-server直接转换为查询PD的API接口了么?

你这pd内存多大啊,表有多少,查个系统表能把内存查爆

pd的data-dir现在多大

机器是16G的,当前集群有130多万个region,感觉是PD内存释放不及时导致的

这个和磁盘空间有关系么?

去掉group by的话 ,也会oom么

试过每次执行这个SQL,都会OOM吗

和磁盘空间没关系,但和数据量有关 ,想看下目前pd数据量

pd和其他节点混部了?130w个region确实也不少。你通过pd-ctl region 一下也能搞崩吗?

1 个赞

感觉优点奇怪啊,直接使用pd-ctl 直接查询看一下呢

1 个赞