内存溢出,导致无法启动

一个好的问题描述有利于社区小伙伴更快帮你定位到问题,高效解决你的问题

【TiDB 使用环境】生产环境
【TiDB 版本】7.5.1
【部署方式】虚机,docker容器部署无备份
【操作系统/CPU 架构/芯片详情】
【机器部署详情】CPU大小/内存大小/磁盘大小
【集群数据量】
【集群节点数】3个节点,tidb、pd、tikv各一个
【问题复现路径,倒入数据过多,内存溢出,后无法启动
【遇到的问题:问题现象及影响】
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【复制黏贴 ERROR 报错的日志】
【其他附件:截图/日志/监控】





是不是tikv的数据盘满了,container映射的那个目录

多弄点资源

导入数据时 RocksDB write buffer、block cache 占用过高,把容器内存打满。
不需要修复文件,只改配置就能启动

内存溢出预防胜于解决

SQL兼容性和执行计划生成机制相关,同样SQL优化器决策可能不同。

看了日志,因为你一次性导入过多数据导致内存资源耗尽,导致内存不足溢出。

批量导入数据时,RocksDB 的 write buffer、block cache 内存参数默认值过高,超出 Docker 容器内存限额,触发 OOM 杀死 TiKV 进程,进程无法自启。

最好分批

OOM导致无法启动,先检查内存配置和tidb_mem_quota_query设置。如果节点起不来可以调整配置文件减小内存限制。

OOM引起服务不可用通常是内存规划不足或查询并发过高。检查系统内存和tidb_mem_quota_query配置,考虑增加节点或优化SQL。

PD 调度先用 pd-ctl 看 scheduler/store/config,确认 limit 和 store score,必要时手动加/删 scheduler。