现在系统部署只能达到240+ , tomcat + apache 也只能到 900 + ,看到robbin的发帖能达到1000 ,不知道该如何配置,特来请教:
http://www.javaeye.com/post/370111?page=8
robbin 写道
既然你用tomcat4都可以达到并发600,那tomcat5.5在同样环境下经过调优完全可以达到1000,看来问题还是在于你们tomcat没有配置好。
附带环境配置如下:
环境配置如下: (jdk没有用 -server)
- 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
- <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
- set JAVA_OPTS=-Xms1400m -Xmx1400m -Djava.awt.headless=true
index.jsp (除了下面这些代码,还有200行html代码,没有一个图片)
- <%
- 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 启动信息如下:
- 2008-5-6 17:54:52 org.apache.catalina.core.AprLifecycleListener init
- 信息: Loaded APR based Apache Tomcat Native library 1.1.10.
- 2008-5-6 17:54:52 org.apache.catalina.core.AprLifecycleListener init
- 信息: APR capabilities: IPv6 [false], sendfile [true], accept filters [false], r
- andom [true].
- 2008-5-6 17:54:52 org.apache.coyote.http11.Http11AprProtocol init
- 信息: Initializing Coyote HTTP/1.1 on http-8080
- 2008-5-6 17:54:52 org.apache.coyote.ajp.AjpAprProtocol init
- 信息: Initializing Coyote AJP/1.3 on ajp-30008
- 2008-5-6 17:54:52 org.apache.catalina.startup.Catalina load
- 信息: Initialization processed in 973 ms
- 2008-5-6 17:54:52 org.apache.catalina.core.StandardService start
- 信息: Starting service Catalina
- 2008-5-6 17:54:52 org.apache.catalina.core.StandardEngine start
- 信息: Starting Servlet Engine: Apache Tomcat/6.0.16
- 2008-5-6 17:54:52 org.apache.coyote.http11.Http11AprProtocol start
- 信息: Starting Coyote HTTP/1.1 on http-8080
- 2008-5-6 17:54:53 org.apache.coyote.ajp.AjpAprProtocol start
- 信息: Starting Coyote AJP/1.3 on ajp-30008
- 2008-5-6 17:54:53 org.apache.catalina.startup.Catalina start
- 信息: Server startup in 310 ms
-----------------------------------------------------------------------------------------
下面是测试结果:
tomcat + apache 测试结果:
- D:/Apache2.2/bin>ab -n 10000 -c 800 http:
-
- Server Software: Apache/2.2.4
- Server Hostname: 127.0.0.1
- Server Port: 80
-
- Document Path: /index.jsp
- Document Length: 41078 bytes
-
- Concurrency Level: 800
- Time taken for tests: 34.46875 seconds
- Complete requests: 10000
- Failed requests: 0
- Write errors: 0
- Total transferred: 413090000 bytes
- HTML transferred: 410780000 bytes
- Requests per second: 293.71 [#/sec] (mean)
- Time per request: 2723.750 [ms] (mean)
- Time per request: 3.405 [ms] (mean, across all concurrent requests)
- Transfer rate: 11848.61 [Kbytes/sec] received
-
- Connection Times (ms)
- min mean[+/-sd] median max
- Connect: 0 0 1.8 0 15
- Processing: 15 2034 3425.1 921 23265
- Waiting: 0 2025 3423.8 921 23250
- Total: 15 2034 3425.1 921 23265
-
- Percentage of the requests served within a certain time (ms)
- 50% 921
- 66% 1343
- 75% 1656
- 80% 1875
- 90% 5078
- 95% 9421
- 98% 15828
- 99% 18171
- 100% 23265 (longest request)
-
- D:/Apache2.2/bin>ab -n 10000 -c 1000 http:
-
- Server Software: Apache/2.2.4
- Server Hostname: 127.0.0.1
- Server Port: 80
-
- Document Path: /index.jsp
- Document Length: 323 bytes
-
- Concurrency Level: 1000
- Time taken for tests: 24.265625 seconds
- Complete requests: 10000
- Failed requests: 3953
- (Connect: 0, Length: 3953, Exceptions: 0)
- Write errors: 0
- Non-2xx responses: 8686
- Total transferred: 58651479 bytes
- HTML transferred: 56541921 bytes
- Requests per second: 412.11 [#/sec] (mean)
- Time per request: 2426.563 [ms] (mean)
- Time per request: 2.427 [ms] (mean, across all concurrent requests)
- Transfer rate: 2360.38 [Kbytes/sec] received
-
- Connection Times (ms)
- min mean[+/-sd] median max
- Connect: 0 0 1.7 0 15
- Processing: 0 1573 4416.4 31 23984
- Waiting: 0 1563 4402.5 31 23984
- Total: 0 1573 4416.5 31 23984
-
- Percentage of the requests served within a certain time (ms)
- 50% 31
- 66% 62
- 75% 62
- 80% 62
- 90% 7031
- 95% 13234
- 98% 18218
- 99% 19859
- 100% 23984 (longest request)
tomcat 单独测试结果 (250并发会经常失败,200比较正常,偶尔有少量错误):
- D:/Apache2.2/bin>ab -n 1000 -c 250 http:
- This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
- Copyright 1996 Adam Twiss, Zeus Technology Ltd, http:
- Copyright 2006 The Apache Software Foundation, http:
-
- Benchmarking 127.0.0.1 (be patient)
- Completed 100 requests
- Send request failed!
- Send request failed!
- Send request failed!
- Send request failed!
- Send request failed!
- Completed 200 requests
- Send request failed!
- apr_socket_recv: 远程主机强迫关闭了一个现有的连接。 (730054)
- Total of 223 requests completed
-
- D:/Apache2.2/bin>ab -n 1000 -c 250 http:
-
- Server Software: Apache-Coyote/1.1
- Server Hostname: 127.0.0.1
- Server Port: 8080
-
- Document Path: /index.jsp
- Document Length: 41078 bytes
-
- Concurrency Level: 250
- Time taken for tests: 2.390625 seconds
- Complete requests: 1000
- Failed requests: 0
- Write errors: 0
- Total transferred: 41292000 bytes
- HTML transferred: 41078000 bytes
- Requests per second: 418.30 [#/sec] (mean)
- Time per request: 597.656 [ms] (mean)
- Time per request: 2.391 [ms] (mean, across all concurrent requests)
- Transfer rate: 16867.56 [Kbytes/sec] received
-
- Connection Times (ms)
- min mean[+/-sd] median max
- Connect: 0 0 1.9 0 15
- Processing: 109 575 314.1 515 1218
- Waiting: 62 550 315.0 453 1156
- Total: 109 575 314.1 515 1218
-
- Percentage of the requests served within a certain time (ms)
- 50% 515
- 66% 609
- 75% 921
- 80% 1031
- 90% 1062
- 95% 1125
- 98% 1140
- 99% 1140
- 100% 1218 (longest request)
单独测试tomcat基本上只能达到240+左右的并发,tomcat+apache 900+并发,如果是静态页面tomcat并发1000+没有任何问题。
tomcat基本上都保持在 20% - 45% 之间 , 内存在 80M -- 600M +之间 ,根据并发和请求的大小,内存的变法比较明显,cpu基本保存在这里,apache占用的cpu基本上是在 15% - 40%。
因为JRockit收费,所以就没有测试。(主要是真实部署的时候会采用这些配置,收费的公司目前也不会购买!^_^)
不知道大家如何配置tomcat能并发1000左右 ????????