单条语句超过内存限制报错后,告警

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】


tidb中断超过内存的sql语句,会在某个地方记录一下吗,方便告警

日志里面会有

除了日志其它地方还有吗

看日志。或者在慢SQL里找找,总会找到的。

这个面板里的指标 tidb_server_execute_error_total 会记录执行失败的 SQL,并且标签里会记录执行失败的原因,超过内存中断就肯定执行失败,把这个表达式改改做成告警就行啦 :smiley_cat:

这个告警,只能说明有超内存执行失败的 SQL,具体 SQL 文本还是要查日志啦

tidb server的log吗

看日志

这个得去日志里去找

dashborad 里面有日志记录,可以下载下来看下。或者去部署机器上去查。或者 系统表去查。可查的地方很多。

sql中断没有执行完,应该只有tidb节点日志里会记录。

dashborad 里查看慢SQL。

1 个赞

OOM的应该不会记录到慢SQL里,慢SQL只记录执行完成的sql

image
在tidb-server里的log目录里有个oom_record子目录,会记录在这里

慢sql引发了

慢SQL呀

dashboard里看下有哪些慢SQL吧

OOM 的 SQL 是记录到慢 SQL 中的,SQL OOM 被 kill 了后也算执行完成了,会判断是否超慢 SQL 阈值,慢 SQL 日志中有个字段是是否执行成功
有一种情况是 SQL 占内存多引发 TiDB 实例 OOM,这样慢 SQL 就记录不了了

服务器上的日志文件或者dashboard面板都可以看

:thinking:有时间验证一下,感觉如果被kill了,执行计划这些参数是怎么统计到的,或者说就算统计到了,也是不完整的。