联表查询并发造成tidb-server内存暴涨从而被系统kill掉重启

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:4.0.2
  • 【问题描述】:联表查询并发造成tidb-server内存暴涨从而被系统kill掉重启

我们服务器内存为32g当时监控看到:

已经超出了几倍,tidb是否有机制可以阻止这样的情况发生。

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出打印结果,请务必全选并复制粘贴上传。

1、tidb 有内存及执行时间控制相关的参数,可以避免 tidb-server oom
2、v4.0 以上的版本,还有 oom-use-tmp-storage 参数,可以使用把内存数据放入到文件中,可以官网搜一下,了解一下使用方式

其实还有 resource crontrol 的方式来控制资源使用,建议都去官网看一下吧

1.官网参考过,只针对单条sql可以进行限制,暂时没有找到可以做整体的限控参数。
如果是单条sql的限制,有的sql用的内存小那么他的并发数是跟用的多完全不同量级,而这样只能根据使用内存最多的sql来做限制,整个服务器资源利用太低了,这还不如堆服务器而不限制。

2.oom-user-tmp-storage涉及到硬盘io,我们计算节点并没有规划高io硬盘和硬盘容量,这样只能缓解,并且可以预计的是在高并发场景硬盘将会因为单个超标内存而占满。并且这个也是依赖1来配置的。

这个有参考文档吗?可以贴个链接我参考一下不?

https://github.com/pingcap/tiup/blob/master/examples/topology.example.yaml

哦,要的应该就是这个。我先在测试环境试试。谢谢

:+1:

404