1,并发用户数目过大,也会导致tomcat自动停止服务。 (95%)
解决方案:尝试加大JVM的内存大小,修改./tomcat/bin/ catalina.sh,加入:
JAVA_OPTS="-server-Xms4096m -Xmx4096m -Xmn512m -XX:PermSize=1024M -XX:MaxPermSize=2048m -Xss1024k-XX:SurvivorRatio=4 -XX:MaxTenuringThreshold=20 -XX:+UseParNewGC-XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=73-XX:+UseCMSCompactAtFullCollection -XX:+CMSParallelRemarkEnabled-XX:CMSFullGCsBeforeCompaction=2 -Djava.awt.headless=true"
2,系统本身的网络负载平衡没有做好,导致tomcat自动停止服务;
3,程序迭代不合理也是一个原因;
4,数据库连接未关闭,导致资源损耗过重,会引起服务停止;
5,程序严重错误,也会引起tomcat停止服务!
6,数据库8小时内没有连接,会断了,由此导致的程序跟着一起断了
7,server.xml文件中修改最大时间,这是tomcat8的一个bug,不改就会断了。可以选择换版本,也可以选择修改配置。
bug:
07-Dec-2016 16:03:57.210 信息 [http-nio-8080-exec-5] org.apache.coyote.http11.Http11Processor.service Error parsing HTTP request header
Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.
java.lang.IllegalArgumentException: Invalid character found in method name. HTTP method names must be tokens
at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:462)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:667)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:802)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1410)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
解决方案:server.xml中添加配置属性
<Connector port="8080" protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
connectionTimeout="20000"
maxThreads="150"
maxSpareThreads="75"
redirectPort="8443" />
因篇幅问题不能全部显示,请点此查看更多更全内容