tomcat jvm 及优化

系统配置:
CPU: AMD Opteron 2GHz × 2
内存: 4G RAM (其中MySQL使用了2G)
OS: SuSE Linux Enterprise Server SP3 x86_64 bit, Kernel 2.6.5
JDK: Sun HotSpot 1.5.0-10 x86_64 bit
Tomcat: 5.5.12 (APR)

Tomcat配置:

server.xml

Xml代码
  1. <Connector port="8080" maxHttpHeaderSize="8192" useBodyEncodingForURI="true"
  2. maxThreads="1000" minSpareThreads="25" maxSpareThreads="75"
  3. enableLookups="false" redirectPort="8443" acceptCount="100"
  4. compression="on" compressionMinSize="2048"
  5. compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
  6. connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8"/>
<Connector port="8080" maxHttpHeaderSize="8192" useBodyEncodingForURI="true"                maxThreads="1000" minSpareThreads="25" maxSpareThreads="75"                enableLookups="false" redirectPort="8443" acceptCount="100"                compression="on" compressionMinSize="2048"  compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"                connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8"/>



catalina.sh这个文件啥都没有改,懒得指定JVM参数进行优化了。

测试文件就用你贴出来的那个,用ab并发1000个请求,发送10000个请求,轻轻松松跑完测试,没有一个request fail。

我特别需要声明的是,这台服务器的CPU是很古老的型号了,而且上面还跑着异常繁忙的JavaEye后台数据库。因此在这台服务器上面做测试,性 能数据受到影响是可以预见的。而且我没有对JVM参数做任何优化,也没有对Tomcat进行任何特别的优化。即便如此,轻松的支撑1000个并发,这还是 直接用ab去压tomcat,没有走lighttpd。我另外也测试了一下走lighttpd,速度稍微慢一点,但是1000并发也毫无问题。


————————————————————————————————
现在系统部署只能达到240+ , tomcat + apache 也只能到 900 + ,看到robbin的发帖能达到1000 ,不知道该如何配置,特来请教:

http://www.javaeye.com/post/370111?page=8
robbin 写道
既然你用tomcat4都可以达到并发600,那tomcat5.5在同样环境下经过调优完全可以达到1000,看来问题还是在于你们tomcat没有配置好。

附带环境配置如下:

 

环境配置如下: (jdk没有用 -server)

Java代码
  1. windows 2003 企业版 sp2
  2. Intel(R) Xeon(R) 4 CPU 5130 @ 2.0GHz 4.00GB 内存
  3. apache_2.2.8-win32-x86
  4. mod_jk-apache-2.0.59
  5. jdk-1_5_0_14-windows-i586-p.exe -client
  6. Tomcat-6.0.16 + apr
windows 2003 企业版 sp2  Intel(R) Xeon(R) 4 CPU 5130 @ 2.0GHz 4.00GB 内存  apache_2.2.8-win32-x86  mod_jk-apache-2.0.59  jdk-1_5_0_14-windows-i586-p.exe -client  Tomcat-6.0.16 + apr

 

server.xml

Xml代码
  1. <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="2000" minSpareThreads="1000"/>
  2. <Connector port="8080" protocol="HTTP/1.1"
  3. connectionTimeout="2000"
  4. redirectPort="8443" enableLookups="false"
  5. acceptCount="5000" maxThreads="2000"/>
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="2000" minSpareThreads="1000"/>           <Connector port="8080" protocol="HTTP/1.1"                 connectionTimeout="2000"                 redirectPort="8443"  enableLookups="false"        acceptCount="5000" maxThreads="2000"/>

catalina.bat

Java代码
  1. set JAVA_OPTS=-Xms1400m -Xmx1400m -Djava.awt.headless=true
set JAVA_OPTS=-Xms1400m -Xmx1400m -Djava.awt.headless=true

 

index.jsp (除了下面这些代码,还有200行html代码,没有一个图片)

Java代码
  1. <%
  2. for(int i=0;i<1000;i++){
  3. request.setAttribute("key_"+i,"value_"+i);
  4. }
  5. for(int i=0;i<100;i++){
  6. request.getSession().setAttribute("key_"+i,"value_"+i);
  7. }
  8. %>
  9. <br />
  10. <%=request.getSession().getAttribute("key_0")%>
  11. <%=request.getSession().getAttribute("key_0")%>
  12. <%=request.getSession().getAttribute("key_0")%>
  13. <%=request.getSession().getAttribute("key_0")%>
  14. <%=request.getSession().getAttribute("key_0")%>
  15. <%=request.getSession().getAttribute("key_0")%>
<% for(int i=0;i<1000;i++){    request.setAttribute("key_"+i,"value_"+i);  }   for(int i=0;i<100;i++){    request.getSession().setAttribute("key_"+i,"value_"+i);  } %> <br /> <%=request.getSession().getAttribute("key_0")%> <%=request.getSession().getAttribute("key_0")%> <%=request.getSession().getAttribute("key_0")%> <%=request.getSession().getAttribute("key_0")%> <%=request.getSession().getAttribute("key_0")%> <%=request.getSession().getAttribute("key_0")%>

tomat 启动信息如下:

Java代码 <embed height="15" width="14" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" allowscriptaccess="always" quality="high" flashvars="clipboard=2008-5-6%2017%3A54%3A52%20org.apache.catalina.core.AprLifecycleListener%20init%0A%E4%BF%A1%E6%81%AF%3A%20Loaded%20APR%20based%20Apache%20Tomcat%20Native%20library%201.1.10.%0A2008-5-6%2017%3A54%3A52%20org.apache.catalina.core.AprLifecycleListener%20init%0A%E4%BF%A1%E6%81%AF%3A%20APR%20capabilities%3A%20IPv6%20%5Bfalse%5D%2C%20sendfile%20%5Btrue%5D%2C%20accept%20filters%20%5Bfalse%5D%2C%20r%0Aandom%20%5Btrue%5D.%0A2008-5-6%2017%3A54%3A52%20org.apache.coyote.http11.Http11AprProtocol%20init%0A%E4%BF%A1%E6%81%AF%3A%20Initializing%20Coyote%20HTTP%2F1.1%20on%20http-8080%0A2008-5-6%2017%3A54%3A52%20org.apache.coyote.ajp.AjpAprProtocol%20init%0A%E4%BF%A1%E6%81%AF%3A%20Initializing%20Coyote%20AJP%2F1.3%20on%20ajp-30008%0A2008-5-6%2017%3A54%3A52%20org.apache.catalina.startup.Catalina%20load%0A%E4%BF%A1%E6%81%AF%3A%20Initialization%20processed%20in%20973%20ms%0A2008-5-6%2017%3A54%3A52%20org.apache.catalina.core.StandardService%20start%0A%E4%BF%A1%E6%81%AF%3A%20Starting%20service%20Catalina%0A2008-5-6%2017%3A54%3A52%20org.apache.catalina.core.StandardEngine%20start%0A%E4%BF%A1%E6%81%AF%3A%20Starting%20Servlet%20Engine%3A%20Apache%20Tomcat%2F6.0.16%0A2008-5-6%2017%3A54%3A52%20org.apache.coyote.http11.Http11AprProtocol%20start%0A%E4%BF%A1%E6%81%AF%3A%20Starting%20Coyote%20HTTP%2F1.1%20on%20http-8080%0A2008-5-6%2017%3A54%3A53%20org.apache.coyote.ajp.AjpAprProtocol%20start%0A%E4%BF%A1%E6%81%AF%3A%20Starting%20Coyote%20AJP%2F1.3%20on%20ajp-30008%0A2008-5-6%2017%3A54%3A53%20org.apache.catalina.startup.Catalina%20start%0A%E4%BF%A1%E6%81%AF%3A%20Server%20startup%20in%20310%20ms%0A" src="http://www.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf">
  1.  

-----------------------------------------------------------------------------------------

 

单独测试tomcat基本上只能达到240+左右的并发,tomcat+apache 900+并发,如果是静态页面tomcat并发1000+没有任何问题。

tomcat基本上都保持在 20% - 45% 之间 , 内存在 80M -- 600M +之间 ,根据并发和请求的大小,内存的变法比较明显,cpu基本保存在这里,apache占用的cpu基本上是在 15% - 40%。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值