单位有一个JAVA项目,原先部署在 windows server 2012上会启动非常慢,还会有偶尔使用系统卡顿的问题,后来部署到windows server 2008上问题解决。现在迁移了环境,需要部署到windows server 2016上,结果光是tomcat启动还是需要30分钟,非常奇怪,于是我就进服务器去查找是什么原因。

排查过程

服务器的配置是完全足够的,无论是CPU和内存都远未占满,部署人员也去TOMCAT的配置文件中配置了JVM内存,还是没效果。后来,一次偶然,我进去服务器重启tomcat,发现1分钟就启动好了。于是我跟原先的部署人员比对我们之间的操作有什么差异。

原先想过是不是我手动关了一些窗口,并且把cmd的快速编辑模式关了的缘故,但发现不是这些原因导致的。我又多尝试了几遍,唯独只有我操作就能在1分钟内启动的,我发现我自己的一个习惯,就是在启动tomcat的命令行时,左下角会出现微软拼音的输入法标识,我觉得别扭会把它切换成英文输入法,难道是这个原因?
DINGTALK_IM_3638463966.JPG.JPG

于是我在启动tomcat后进行切换输入法和不切换的对比,发现是微软拼音的时候,它控制台也会一直刷新,但不知为何会一直刷新同样的内容,没法启动成功,要等30分钟左右才能正常启动,当切换成英文输入法后,1分钟就正常启动了,问题解决。

还没想通是什么原因导致的。。感觉是个非常坑的BUG,要不是我的习惯性操作还找不到这个问题,如果有同学出现类似问题可以参考解决一下。

Last modification:August 30, 2022
If you think my article is useful to you, please feel free to appreciate