我们尝试在Cpanel服务器中部署多个tomcat应用程序,我们经常遇到内存问题。当我们运行单个tomcat应用程序时,它运行正常,没有任何问题,但是当运行两个应用程序时,这会导致%CPU增加到250以上并且应用程序都会卡住。谁能帮助我们呢?请参阅下面的日志中显示的错误。
org.apache.catalina.core.ApplicationDispatcher invoke
SEVERE: Servlet.service() for servlet jsp threw exception
java.lang.OutOfMemoryError: PermGen space
Exception in thread "http-bio-80-exec-1206" java.lang.OutOfMemoryError: PermGen space
Exception in thread "http-bio-80-exec-1195" java.lang.OutOfMemoryError: PermGen space
#
答案 0 :(得分:0)
您需要调整和优化服务器以获得正确的资源使用情况,以及正在运行和耗尽内存的Java应用程序。
你有什么服务器配置?它是VPS还是专用服务器?
或者您正在使用共享主机?
答案 1 :(得分:0)
在tomcat中部署war文件时,会使用某些tomcat java内存部分,并且tomcat无法很好地管理它。这样做的证明是,如果您在不重新启动的情况下多次部署同一个应用程序,则会在tomcat日志中显示一个outofmemory。
如果您在生产环境中:
按app使用一个tomcat。因此,您可以部署,停止,启动,重启等应用此应用,而不会有影响其他应用的风险。 如果在一次部署后重新启动tomcat,部署阶段的内存错误就会消失。
使用tomcat-docker。使用docker可以杀死整个tomcat广告,在每个部署中启动一个新实例。所以你的tomcat会很干净。