为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【 TiDB 使用环境】
【概述】场景+问题概述
执行一条delete语句时,因错误使用where条件,导致单条sql删除的数据过多,使用了大量内存,出现了OOM
.
已经设置单条 SQL 语句可以占用的最大内存阈值, mem-quota-query
设置为1G,但执行的时候超出了这个值.请问下超出阈值的原因,是否还有其他参数需要设置?
【TiDB 版本】
v5.0.3
【附件】
- 相关日志 和 监控
-
TiUP Cluster Edit Config 信息
-
TiKV-Trouble-Shooting
7:44左右执行了这条有问题的sql,导致内存急升,最后出现oom killer,然后自动重启了.
[相关日志信息]
tidb在这个时间范围内有相应的警告信息
[2021/10/15 07:44:54.000 +08:00] [WARN] [memory_usage_alarm.go:141] ["tidb-server has the risk of OOM. Running SQLs and heap profile will be recorded in record path"] ["is server-memory-quota set"=false] ["system memory total"=33566277632] ["system memory usage"=26857930752] ["tidb-server memory usage"=4167543728] [memory-usage-alarm-ratio=0.8] ["record path"="/tmp/1000_tidb/MC4wLjAuMDo0MDAwLzAuMC4wLjA6MTAwODA=/tmp-storage/record"]
dmesg
[4120475.131668] [ 8708] 1000 8703 8542792 4316978 15009 0 0 time-monitor
[4120475.131670] [12989] 1000 12989 3004165 2691485 5353 0 0 tidb-server
[4120475.131673] [23383] 89 23383 22563 269 46 0 0 pickup
[4120475.131675] Out of memory: Kill process 8708 (time-monitor) score 528 or sacrifice child
[4120475.132373] Killed process 8708 (time-monitor), UID 1000, total-vm:34171168kB, anon-rss:17267912kB, file-rss:0kB, shmem-rss:0kB
[4134730.929258] tidb-server invoked oom-killer: gfp_mask=0x201da, order=0, oom_score_adj=0
[4134730.929264] tidb-server cpuset=/ mems_allowed=0