程序运行了好几个月都没问题。突然有一天挂掉了,日志说内存溢出,重启tomcat,过一会儿还是溢出。。
我就纳闷了。听说请求增加了,于是改了server.xml中的线程数:
server.xml中
<Connector executor="tomcatThreadPool" port="8080" protocol="org.apache.coyote.http11.Http11Protocol" enableLookups="false" maxThreads="500" acceptCount="1500" acceptorThreadCount="1" connectionTimeout="4000" redirectPort="8443" />倒是不溢出了,内存却占了n多。tomcat测试环境测试,内存只占几百M,都不会上G放到线上环境内存顿时就占了2G多。。并且打开页面也会偶尔卡一下,卡的时候cpu很高,甚至100%它主要有每秒几百个请求,都是请求同一个servlet。测试环境中我也模拟了同样的请求。请教了几个人,有说是GC的导致的。我感觉像是线上环境配置有关系
这是线上环境的一些参数:catalina.sh中有:
JAVA_OPTS='-server -Xmx2048m -Xms2048m -Xss256k'虽然配置了2G的内存,但是一放上就占2G也不太正常吧?server.xml中
<Connector executor="tomcatThreadPool" port="8080" protocol="org.apache.coyote.http11.Http11Protocol" enableLookups="false" maxThreads="500" acceptCount="1500" acceptorThreadCount="1" connectionTimeout="4000" redirectPort="8443" />求高手帮忙分析下。如何解决
我就纳闷了。听说请求增加了,于是改了server.xml中的线程数:
server.xml中
<Connector executor="tomcatThreadPool" port="8080" protocol="org.apache.coyote.http11.Http11Protocol" enableLookups="false" maxThreads="500" acceptCount="1500" acceptorThreadCount="1" connectionTimeout="4000" redirectPort="8443" />倒是不溢出了,内存却占了n多。tomcat测试环境测试,内存只占几百M,都不会上G放到线上环境内存顿时就占了2G多。。并且打开页面也会偶尔卡一下,卡的时候cpu很高,甚至100%它主要有每秒几百个请求,都是请求同一个servlet。测试环境中我也模拟了同样的请求。请教了几个人,有说是GC的导致的。我感觉像是线上环境配置有关系
这是线上环境的一些参数:catalina.sh中有:
JAVA_OPTS='-server -Xmx2048m -Xms2048m -Xss256k'虽然配置了2G的内存,但是一放上就占2G也不太正常吧?server.xml中
<Connector executor="tomcatThreadPool" port="8080" protocol="org.apache.coyote.http11.Http11Protocol" enableLookups="false" maxThreads="500" acceptCount="1500" acceptorThreadCount="1" connectionTimeout="4000" redirectPort="8443" />求高手帮忙分析下。如何解决
这个网上查一下有很多啊怎么会配错了 Xms 最小你也配个2G能不启动就占了2G吗?配个几百M就有了吧
只有当你用tomcat的startup.bat启动才会启作用还有什么事自已不试怎么知道了,我讲了这么多你试下不就知道有没有用吗
不懂
这个?
0 Jul 31 19:11 host-manager.2011-07-31.log