【 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,然后使用临时磁盘,见下面图片
1 个赞
- 数据库的版本和内存相关配置:
- TiDB 版本
tidb_mem_quota_query
memory-usage-alarm-ratio
mem-quota-query
oom-action
tidb_enable_rate_limit_action
tidb_server_memory_limit
oom-use-tmp-storage
tmp-storage-path
tmp-storage-quota
-
tidb_analyze_version
https://docs.pingcap.com/zh/tidb/v6.5/troubleshoot-tidb-oom#tidb-oom-故障排查
1 个赞
你的版本是4.0,tidb_server_memory_limit用不了,只能通过 tidb_mem_quota_query
限制单条sql的内存占用率了,不过这个低版本控制的也不是很好,还是建议多监控数据库sql,有大内存的即使优化处理,后者考虑升级到6.4用tidb_server_memory_limit参数,可以基本保证tidb-server不会oom被杀。
写脚本监控大sql吧,版本太低了