【 TiDB 使用环境】生产环境
【 TiDB 版本】6.1
【复现路径】直接从tidb终端执行SQL
【遇到的问题:问题现象及影响】mem_quota_query参数不生效,会导致SQL语句把内存用完触发oom,导致tidb服务频繁被kill掉
【资源配置】32C64G
【附件:截图/日志/监控】
你设置错数值了吧 6442450944是6G,再改大点
是的,我的目的是想把单SQL内存最大限制在6G
我的目的是希望把这些较大的语句超过6G的时候就kill掉,防止把服务器的内存用完导致整个服务被kill掉
tidb_mem_oom_action你配置的是CANCEL吗
1 个赞
6.1限制单个sql内存的好像不是很好用啊,6.4开始有 tidb_server_memory_limit
限制整个tidb内存的对oom问题处理比较好
我们的这个版本太老了,我是看到官方文档上有写可以用这个参数控制
先看看慢查询吧,把那些内存消耗大的sql看看能不能优化掉
6.1版本的explain 也看不到内存消耗
它不是执行10分钟才崩吗,没崩前用explain for connection看下,把结果用文本发出来
嗯,我尝试看看能不能抓出来,手动复现的时候会把整个实例打死
我也是这样问题,设置那个参数没有用
我的版本更低,都没有这个参数
这个参数在6.1之前是session级别的,需要在写SQL之前手动设置好像
我5.4的版本发现也有失效情况
自己监控语句达到以后就干掉,内存耗尽就直接重启
我的也有失效情况
查询一下是否存在多语句并发的问题,不一定是参数失效