【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
在tidb-server服务出现内存快要消耗怠尽时,对tidb-server有没有快速回收内存的办法或参数?
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】
【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
在tidb-server服务出现内存快要消耗怠尽时,对tidb-server有没有快速回收内存的办法或参数?
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】
同问!
没办法回收内存 只能限制大内存sql
https://docs.pingcap.com/zh/tidb/stable/configure-memory-usage#设置环境变量-gomemlimit-缓解-oom-问题
GOMEMLIMIT
这个参数值得尝试。
能用的手段都用上吧。
解决问题的核心还是要优化消耗资源大的sql,业务上不能优化的话可以考虑上tiflash。
最后如果是钱能解决的问题都不是问题,赶紧扩容tidb。
单个sql15G啊,你这随便来几个并发大sql直接就把tidb干停了,我觉得你还是先找下大sql优化下吧
没有什么好办法,参数调整只能选择kill掉sql或者tidb server自己。
根本解决办法还是要解决sql内存占用
这个给的真猛,哈哈哈。还是改小一点吧
设置查询的最大内存
是6.5吗,6.5限制比较好
TiDB应该会自动会回收的,确定是connection也都释放了么?执行下下面的SQL,看下对应INSTANCE还有没有遗留的大事务没有释放
select INSTANCE,START_TIME,SESSION_ID,USER,STATE from INFORMATION_SCHEMA.CLUSTER_TIDB_TRX order by START_TIME;
基于6.5而言没有彻底的解决办法,挡不住持续的大量慢SQL。只能是通过top-sql具体案例具体分析,找到当时哪些SQL导致的OOM,让业务优化一下。
彻底解决办法,可以期待资源管控的自动限流。不过7.1的资源管控的功能也比较少,也不支持。7.2的资源管控倒是能解决,但是不是LTS版本,至少得等到年底的7.5 LTS版本上线了。可以先看下7.3的资源管控功能,已经可以做到自动slowdown/block同一类型的慢查询了
https://docs.pingcap.com/zh/tidb/v7.3/tidb-resource-control#管理资源消耗超出预期的查询-runaway-queries