jfinal5.1.6,数据库mysql8,操作系统ubuntu20.04,超融合服务器里创建的虚拟机,64G内存,1T硬盘,16cpu。
系统里有个功能是java代码组织了大约2000个左右的record的list,然后调用Db.batchUpdate批量更新库里的数据。
开发环境和客户生产环境下,这个Db.batchUpdate执行会在1秒左右执行完返回。
但从某一天开始,生产环境突然这个Db.batchUpdate需要执行1分钟甚至2分钟才能执行完。严重影响系统运行的效率。
我们把生产环境的数据库备份到我们开发的数据库服务器上,照样是1秒左右就能执行完。
试着在生产环境新建了一个虚拟机,重新安装mysql8,把数据库恢复到新虚拟机上,情况依旧,仍然是需要1分钟甚至2两分钟才能执行完。生产环境和我们开发环境唯一的区别就是生成环境有一个服务器运行flink cdc,用来捕捉mysql数据库的数据变化实现实施同步到其他数据库里。我们试着把flink停掉,情况依旧。在数据库服务器上查看cpu,磁盘io发现也没有大量的占用,磁盘空间非常充足。
排查了一周了,也没找到原因。谁遇到过这样的问题,能不能提供一个排查思路!谢谢了!
项目:JFinal