我已经运行了几天的 tomcat7 生产服务器,然后突然无法到达通过 http 端口。奇怪的是,后台进程仍在运行从日志可以看出。
所以我试图停止使用invoke-rc.d tomcat7 stop
tomcat7debian wheezy框。但进程仍然存在,带有标志。我尝试了kill -9 <pid>
和killall -9 java
,但进程仍然存在 - 仍然占用端口,导致我无法启动新的 tomcat,并且端口已被使用错误。
我必须重启。然后一切就正常了。
但我很好奇是什么原因导致了这种情况?没有任何大负载。只有一些后台进程在运行、抓取。我从日志中看不到任何可疑的东西。
如果再次发生这种情况,我该怎么办真正的原因并修复它?
这是我的连接器设置:
<Connector port="8080" address="127.0.0.1"
maxParameterCount="500"
maxPostSize="250000"
scheme="http"
secure="false"
protocol="org.apache.coyote.http11.Http11AprProtocol"
connectionTimeout="20000"
disableUploadTimeout="false"
connectionUploadTimeout="300000"
maxThreads="500"
processorCache="500"
URIEncoding="UTF-8"
/>
我的 tomcat 版本:7.0.28-4+deb7u1
我的虚拟机参数:
JAVA_OPTS="-Djava.awt.headless=true -Dspring.profiles.active="background,production" -XX:-UseSplitVerifier -javaagent:/var/lib/tomcat7/spring-instrument-3.2.3.RELEASE.jar -server -Xms4G -Xmx4G -XX:MaxPermSize=128m -XX:+DisableExplicitGC -XX:-HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/tomcat7/dump -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+UseTLAB -XX:+CMSIncrementalMode -XX:+CMSIncrementalPacing -XX:CMSIncrementalDutyCycleMin=0 -XX:CMSIncrementalDutyCycle=10 -XX:MaxTenuringThreshold=0 -XX:SurvivorRatio=256 -XX:CMSInitiatingOccupancyFraction = 60 -Djava.net.preferIPv4Stack = true”
jdk版本:7u60