Tomcat未被特别closures

我在Centos 6操作系统上使用了带有1 GB RAM的Apache Tomcat 8.0.23。 我已经使用Servlet和JSP服务器端。 但几天之后它会自动closures。 我在bin / CATALINA_OPTS="-Xms128M -Xmx256M"给出的内存大小为CATALINA_OPTS="-Xms128M -Xmx256M" 。 有人可以告诉我为什么我的服务器closures? 我不太熟悉Tomcat和Linux。 我也试着在var/logapache-Tomcat/logs上看到日志文件。 但是我没有发现任何可疑的事情。 1 GB的RAM足够我的服务器? 我的android应用程序运行在大约5000个设备上。

有什么build议么 ?

编辑:

 07-Aug-2015 03:58:03.199 INFO [Finalizer] org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading Illegal access: this web application instance has been stopped already. Could not load [java.net.BindException]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access. java.lang.IllegalStateException: Illegal access: this web application instance has been stopped already. Could not load [java.net.BindException]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access. at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1327) at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForClassLoading(WebappClassLoaderBase.java:1313) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1196) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1157) at com.mysql.jdbc.CommunicationsException.<init>(CommunicationsException.java:161) at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2759) at com.mysql.jdbc.MysqlIO.quit(MysqlIO.java:1410) at com.mysql.jdbc.Connection.realClose(Connection.java:4900) at com.mysql.jdbc.Connection.cleanup(Connection.java:2061) at com.mysql.jdbc.Connection.finalize(Connection.java:3376) at java.lang.System$2.invokeFinalize(System.java:1270) at java.lang.ref.Finalizer.runFinalizer(Finalizer.java:98) at java.lang.ref.Finalizer.access$100(Finalizer.java:34) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:210) 10-Aug-2015 18:34:35.757 WARNING [http-nio-8080-exec-63] org.apache.catalina.realm.LockOutRealm.authenticate An attempt was made to authenticate the locked user "root" 10-Aug-2015 18:36:19.397 WARNING [http-nio-8080-exec-65] org.apache.catalina.realm.LockOutRealm.authenticate An attempt was made to authenticate the locked user "manager" 10-Aug-2015 18:36:28.451 WARNING [http-nio-8080-exec-63] org.apache.catalina.realm.LockOutRealm.authenticate An attempt was made to authenticate the locked user "manager" 10-Aug-2015 18:36:38.882 WARNING [http-nio-8080-exec-70] org.apache.catalina.realm.LockOutRealm.authenticate An attempt was made to authenticate the locked user "manager" 

谢谢 !

不幸的是,不可能只用问题中给出的上下文来指出确切的原因。 你需要收集更多的信息来指出任何根本原因。

我只能给你提供一般的启发式方法来debugging它。 尝试改变环境的各种参数来定位根本原因,一次只更改一件事情。 问题何时发生? 这是否在某些应用程序负载下发生? 如果你在没有你的应用程序的情况下运行tomcat的实例,会发生什么? 它在另一个操作系统或机器上工作吗?

你需要开始隔离故障。 如果在另一台机器上运行良好,则可以排除环境因素,例如cron作业或某些系统服务,从而终止进程。 如果你的tomcat实例在没有应用程序的情况下运行良好,那么故障不在服务器configuration中。 等等。

为了加速这个过程(因为它每隔几天才会重新出现),你可以在一个单独的tomcat实例中运行你的每个testing,从而同时testing多种可能性。

对我来说记忆似乎不是这里的问题。 分配的内存应该是足够的,但即使它不是你应该得到OutOfMemoryError不只是沉默的任意closures。

您可以尝试增加tomcat日志的详细程度以打印更详细的信息。 这可以通过更改./conf/logging.properties下的设置来完成

尝试增加内存,然后编辑setenv.sh文件,并增加CATALINA_OPTSvariables来为tomcat分配更多的内存。