如何实现TIDB内存过限时进程不被重启

【 TiDB 使用环境】生产环境
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】内存使用过限时TIDB进程被重启 目前均为缺省配置
【资源配置】
【附件:截图/日志/监控】

1、参照官网的tidb-server配置,配置限制内存参数
2、可以把tidb_mem_oom_action的参数cancel,改为log

2 个赞

可以看下这个参数是不是满足你的要求
https://docs.pingcap.com/zh/tidb/v6.5/system-variables#tidb_server_memory_limit-从-v640-版本开始引入

操作系统杀没有办法,不杀这个也要杀其他进程,其他进程占的也不多,可以尝试的是:
1、找到高内存占用的SQL提前处理掉
2、高版本的全局内存控制参数tidb_server_memory_limit辅助控制内存

1 个赞

可以把tidb_mem_oom_action的参数cancel,改为log,然后使用临时磁盘,见下面图片
image

1 个赞
1 个赞

你的版本是4.0,tidb_server_memory_limit用不了,只能通过 tidb_mem_quota_query限制单条sql的内存占用率了,不过这个低版本控制的也不是很好,还是建议多监控数据库sql,有大内存的即使优化处理,后者考虑升级到6.4用tidb_server_memory_limit参数,可以基本保证tidb-server不会oom被杀。

写脚本监控大sql吧,版本太低了