TiDB OOM什么时候彻底解决

请教下关于TiDB 2.1 版本经常垃圾回收不及时,导致OOM,这个什么时候可以修复?

OOM 不是垃圾回收不及时导致的。一般是大查询之类的。 对于内存使用上的控制,我们尽力的在做,但是这并不是一项容易的工作。

在更早的版本,OOM 的更夸张。 然后我们做了单条查询的内存使用量统计,并且可以限制每个查询的内存使用量。当一查询消耗资源过的的时候,我们杀掉这个查询,进而避免整个 TiDB 进程的 OOM。

这里也并不完善,使用量的统计不一定是特别精确的。另外,多个连接上面同时发生的多个大查询,也可能将内存撑爆。

我们现在还在考虑改进,比如将一些数据持久化到外存,这样就可以更好地避免 OOM 2.1 比 2.0 会做得好一些,而 3.0 会比 2.1.x 好一些。这将是一个长远的工作,可能到 4.0 中又会好一些,完全解决有可能 5.0 甚至更高版本。

总的来说,TiDB 在一点一点的进步,未来可期!

3赞