我在Windows Server 2012 R2上使用Tomcat 9.0.0.M22和jdk1.8.0_131并且我在其上部署了一个Spring Boot Web应用程序,问题是,每隔10秒,commons守护程序服务运行程序将CPU增加到50%,尽管我部署的Web应用程序处于空闲状态,然后降低到0%,并且此行为每10秒继续发生一次。
在我的应用程序中,我没有任何每10秒运行一次的工作,而且当我从Eclipse运行我的Web应用程序时,我没有注意到相同的行为,所以我猜这是一个内置线程的Tomcat。
jdk/bin/jvisualvm
连接到您的tomcat并反复按线程选项卡右上角的线程转储按钮,或者如果您更喜欢命令行(例如通过脚本),您也可以使用jdk/bin/jcmd <pid-of-your-tomcat> Thread.Print >> dumps.txt
没有更多的信息,这只是猜测,但这可能是垃圾收集器试图每十秒钟完成它的工作但不能驱逐任何物品,因为它们仍然是需要的。您可以尝试增加Tomcat(-Xmx)的内存。
有了这么多信息,这是非常艰难的,你可以想到几点:
我可以通过在context.xml中设置reloadable =“false”来完全停止此行为。