使用的tomcat版本为:apache-tomcat-7.0.53
使用测试工具Jmeter版本为:apache-jmeter-2.12
1、测试前tomat的"server.xml"配置文件(使用tomcat的默认配置,未做任何修改)
<?xml version='1.0' encoding='utf-8'?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!-- Note: A "Server" is not itself a "Container", so you may not
define subcomponents such as "Valves" at this level.
Documentation at /docs/config/server.html
-->
<Server port="8005" shutdown="SHUTDOWN">
<!-- Security listener. Documentation at /docs/config/listeners.html
<Listener className="org.apache.catalina.security.SecurityListener" />
-->
<!--APR library loader. Documentation at /docs/apr.html -->
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<!--Initialize Jasper prior to webapps are loaded. Documentation at /docs/jasper-howto.html -->
<Listener className="org.apache.catalina.core.JasperListener" />
<!-- Prevent memory leaks due to use of particular java/javax APIs-->
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
<!-- Global JNDI resources
Documentation at /docs/jndi-resources-howto.html
-->
<GlobalNamingResources>
<!-- Editable user database that can also be used by
UserDatabaseRealm to authenticate users
-->
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
<!-- A "Service" is a collection of one or more "Connectors" that share
a single "Container" Note: A "Service" is not itself a "Container",
so you may not define subcomponents such as "Valves" at this level.
Documentation at /docs/config/service.html
-->
<Service name="Catalina">
<!--The connectors can use a shared executor, you can define one or more named thread pools-->
<!--
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="150" minSpareThreads="4"/>
-->
<!-- A "Connector" represents an endpoint by which requests are received
and responses are returned. Documentation at :
Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
Java AJP Connector: /docs/config/ajp.html
APR (HTTP/AJP) Connector: /docs/apr.html
Define a non-SSL HTTP/1.1 Connector on port 8080
-->
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<!-- A "Connector" using the shared thread pool-->
<!--
<Connector executor="tomcatThreadPool"
port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
-->
<!-- Define a SSL HTTP/1.1 Connector on port 8443
This connector uses the BIO implementation that requires the JSSE
style configuration. When using the APR/native implementation, the
OpenSSL style configuration is required as described in the APR/native
documentation -->
<!--
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
-->
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<!-- An Engine represents the entry point (within Catalina) that processes
every request. The Engine implementation for Tomcat stand alone
analyzes the HTTP headers included with the request, and passes them
on to the appropriate Host (virtual host).
Documentation at /docs/config/engine.html -->
<!-- You should set jvmRoute to support load-balancing via AJP ie :
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
-->
<Engine name="Catalina" defaultHost="localhost">
<!--For clustering, please take a look at documentation at:
/docs/cluster-howto.html (simple how to)
/docs/config/cluster.html (reference documentation) -->
<!--
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
-->
<!-- Use the LockOutRealm to prevent attempts to guess user passwords
via a brute-force attack -->
<Realm className="org.apache.catalina.realm.LockOutRealm">
<!-- This Realm uses the UserDatabase configured in the global JNDI
resources under the key "UserDatabase". Any edits
that are performed against this UserDatabase are immediately
available for use by the Realm. -->
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>
</Server>
2、使用Jmeter测试工具对tomcat进行压力测试,压力参数如下:
上面我使用Jmeter工具模拟800个用户同时访问tomcat服务器,每个用户循环访问10次,共8000次请求。
3、使用Jmeter发送的数据为json字符串,POST请求写数据:
4、测试结果(聚合报告):
我们总共发送了8000次请求,而出错率高达23.39%!就是说在8000次请求当中,有1871个请求是失败的(请求被拒绝)。因为tomcat的默认配置扛不住这么高的并发,导致tomcat的连接池处理不过来,请求直接被拒绝。
5、开始调整tomcat的配置参数,下面是调整后的server.xml配置(注意高亮部分):
<?xml version='1.0' encoding='utf-8'?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!-- Note: A "Server" is not itself a "Container", so you may not
define subcomponents such as "Valves" at this level.
Documentation at /docs/config/server.html
-->
<Server port="8005" shutdown="SHUTDOWN">
<!-- Security listener. Documentation at /docs/config/listeners.html
<Listener className="org.apache.catalina.security.SecurityListener" />
-->
<!--APR library loader. Documentation at /docs/apr.html -->
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<!--Initialize Jasper prior to webapps are loaded. Documentation at /docs/jasper-howto.html -->
<Listener className="org.apache.catalina.core.JasperListener" />
<!-- Prevent memory leaks due to use of particular java/javax APIs-->
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
<!-- Global JNDI resources
Documentation at /docs/jndi-resources-howto.html
-->
<GlobalNamingResources>
<!-- Editable user database that can also be used by
UserDatabaseRealm to authenticate users
-->
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
<!-- A "Service" is a collection of one or more "Connectors" that share
a single "Container" Note: A "Service" is not itself a "Container",
so you may not define subcomponents such as "Valves" at this level.
Documentation at /docs/config/service.html
-->
<Service name="Catalina">
<!--The connectors can use a shared executor, you can define one or more named thread pools-->
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="600" minSpareThreads="4"/>
<!-- A "Connector" represents an endpoint by which requests are received
and responses are returned. Documentation at :
Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
Java AJP Connector: /docs/config/ajp.html
APR (HTTP/AJP) Connector: /docs/apr.html
Define a non-SSL HTTP/1.1 Connector on port 8080
-->
<!--<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />-->
<!-- A "Connector" using the shared thread pool-->
<Connector executor="tomcatThreadPool"
port="8080"
protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
redirectPort="8443"
enableLookups="false"
maxPostSize="10485760"
acceptCount="100"
acceptorThreadCount="2"
disableUploadTimeout="true"
maxConnections="10000"
SSLEnabled="false"/>
<!-- Define a SSL HTTP/1.1 Connector on port 8443
This connector uses the BIO implementation that requires the JSSE
style configuration. When using the APR/native implementation, the
OpenSSL style configuration is required as described in the APR/native
documentation -->
<!--
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
-->
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<!-- An Engine represents the entry point (within Catalina) that processes
every request. The Engine implementation for Tomcat stand alone
analyzes the HTTP headers included with the request, and passes them
on to the appropriate Host (virtual host).
Documentation at /docs/config/engine.html -->
<!-- You should set jvmRoute to support load-balancing via AJP ie :
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
-->
<Engine name="Catalina" defaultHost="localhost">
<!--For clustering, please take a look at documentation at:
/docs/cluster-howto.html (simple how to)
/docs/config/cluster.html (reference documentation) -->
<!--
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
-->
<!-- Use the LockOutRealm to prevent attempts to guess user passwords
via a brute-force attack -->
<Realm className="org.apache.catalina.realm.LockOutRealm">
<!-- This Realm uses the UserDatabase configured in the global JNDI
resources under the key "UserDatabase". Any edits
that are performed against this UserDatabase are immediately
available for use by the Realm. -->
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>
</Server>
在上面的配置中,我开启了连接池 tomcatThreadPool,最大线程数 maxThreads 设置为 600,并使用 Http11NioProtocol等等。
6、使用的上面的配置,重启tomcat,使用同样的Jmeter压力参数再次进行测试,测试结果(聚合报告)如下:
把并发数从800提升到1000,再次测试:
测试结果,出错率依然为0:
7、扩展:在使用测试工具Jmeter的时候存在一个问题,就是如果使用它的GUI界面模式来测试,短时间内还凑合,时间稍微长一点,就会卡死(内存溢出)。
官方说,在实际测试的时候,千万不要使用Jmeter的GUI模式,而要使用非GUI模式,即使用命令行模式。
上面的例子都是使用的Jmeter的GUI模式进行测试的。下面是使用命令行模式来测试。下面是我们模拟的百万请求(1000个并发)测试,并发配置参数如下:
在上图中,我们模拟1000个用户并发访问,每个用户访问1000次,总共一百万次请求。
将上面的配置保存到一个命令为"friends.jmx"的文件中,然后在使用命令行模式启动它。
由于测试结果较多,不方便截图,就将命令行模式下测试过程中的输出内容复制如下:
D:\java\apache-jmeter-2.12\bin>jmeter -t friends.jmx -n -l 234.jtl
在这次测试中,我模拟了1000个用户并发访问一台tomcat,每个用户访问1000次,共一百万次请求。出错率为0(0.00%),吞吐量最高到达982.8/s。
将并发数提高到2000,共20万次请求:
出错率依然为0(0.00%):
D:\java\apache-jmeter-2.12\bin>jmeter -t friends.jmx -n -l 456.jtl
继续,将并发数提高到3000,总共生产30万条消息(由于我的消息是通过tomcat写入到kafka的,所以使用监控工具观察到所有消息都成功被写入到kafka集群),消息全部发送成功,由于我开启了消费者,所以,所有的消息也都被成功消费:
由于我们的消息消费者是要写库的,所以,查看数据库,所有的消息都成功入库(1条消息对应数据库中的2条记录,所以30万条消息在数据库中产生60万条记录):
观察Jmeter命令行输出:
D:\java\apache-jmeter-2.12\bin>jmeter -t friends.jmx -n -l 111.jtl
Creating summariser <summary>
Created the tree successfully using friends.jmx
Starting the test @ Fri Apr 07 17:45:45 CST 2017 (1491558345806)
Waiting for possible shutdown message on port 4445
summary + 648 in 13s = 50.6/s Avg: 4819 Min: 39 Max: 10134 Err: 0 (0.00%) Active: 3000 Started: 3000 Finished: 0
summary + 4834 in 40s = 121.9/s Avg: 12919 Min: 3546 Max: 21456 Err: 0 (0.00%) Active: 3000 Started: 3000 Finished: 0
summary = 5482 in 43s = 128.2/s Avg: 11962 Min: 39 Max: 21456 Err: 0 (0.00%)
summary + 10587 in 51s = 209.2/s Avg: 10089 Min: 6026 Max: 21373 Err: 0 (0.00%) Active: 3000 Started: 3000 Finished: 0
summary = 16069 in 73s = 220.9/s Avg: 10728 Min: 39 Max: 21456 Err: 0 (0.00%)
summary + 12415 in 40s = 312.9/s Avg: 7343 Min: 5107 Max: 10677 Err: 0 (0.00%) Active: 3000 Started: 3000 Finished: 0
summary = 28484 in 103s = 277.2/s Avg: 9253 Min: 39 Max: 21456 Err: 0 (0.00%)
summary + 12369 in 38.3s = 322.6/s Avg: 7336 Min: 5090 Max: 10130 Err: 0 (0.00%) Active: 3000 Started: 3000 Finished: 0
summary = 40853 in 133s = 307.7/s Avg: 8672 Min: 39 Max: 21456 Err: 0 (0.00%)
summary + 12525 in 38.1s = 329.0/s Avg: 7201 Min: 5334 Max: 10620 Err: 0 (0.00%) Active: 3000 Started: 3000 Finished: 0
summary = 53378 in 163s = 328.0/s Avg: 8327 Min: 39 Max: 21456 Err: 0 (0.00%)
summary + 12661 in 38s = 333.9/s Avg: 6756 Min: 5032 Max: 10080 Err: 0 (0.00%) Active: 3000 Started: 3000 Finished: 0
summary = 66039 in 193s = 342.6/s Avg: 8026 Min: 39 Max: 21456 Err: 0 (0.00%)
summary + 11966 in 40s = 301.7/s Avg: 7968 Min: 4862 Max: 12396 Err: 0 (0.00%) Active: 3000 Started: 3000 Finished: 0
summary = 78005 in 223s = 350.2/s Avg: 8017 Min: 39 Max: 21456 Err: 0 (0.00%)
summary + 11378 in 37.2s = 306.1/s Avg: 7517 Min: 4792 Max: 13336 Err: 0 (0.00%) Active: 3000 Started: 3000 Finished: 0
summary = 89383 in 253s = 353.6/s Avg: 7953 Min: 39 Max: 21456 Err: 0 (0.00%)
summary + 13119 in 43.3s = 302.9/s Avg: 7122 Min: 5280 Max: 13472 Err: 0 (0.00%) Active: 3000 Started: 3000 Finished: 0
summary = 102502 in 283s = 362.5/s Avg: 7847 Min: 39 Max: 21456 Err: 0 (0.00%)
summary + 12872 in 38.3s = 336.0/s Avg: 6896 Min: 4840 Max: 9639 Err: 0 (0.00%) Active: 3000 Started: 3000 Finished: 0
summary = 115374 in 313s = 368.9/s Avg: 7741 Min: 39 Max: 21456 Err: 0 (0.00%)
summary + 11828 in 39s = 303.5/s Avg: 7440 Min: 5417 Max: 10629 Err: 0 (0.00%) Active: 3000 Started: 3000 Finished: 0
summary = 127202 in 343s = 371.1/s Avg: 7713 Min: 39 Max: 21456 Err: 0 (0.00%)
summary + 12362 in 40.3s = 306.9/s Avg: 7494 Min: 5546 Max: 10556 Err: 0 (0.00%) Active: 3000 Started: 3000 Finished: 0
summary = 139564 in 373s = 374.4/s Avg: 7693 Min: 39 Max: 21456 Err: 0 (0.00%)
summary + 12708 in 39s = 326.0/s Avg: 7106 Min: 5465 Max: 9505 Err: 0 (0.00%) Active: 3000 Started: 3000 Finished: 0
summary = 152272 in 403s = 378.1/s Avg: 7644 Min: 39 Max: 21456 Err: 0 (0.00%)
summary + 11576 in 39s = 298.5/s Avg: 7732 Min: 5463 Max: 10985 Err: 0 (0.00%) Active: 3000 Started: 3000 Finished: 0
summary = 163848 in 433s = 378.6/s Avg: 7651 Min: 39 Max: 21456 Err: 0 (0.00%)
summary + 12228 in 39s = 313.2/s Avg: 7451 Min: 5210 Max: 10799 Err: 0 (0.00%) Active: 3000 Started: 3000 Finished: 0
summary = 176076 in 463s = 380.5/s Avg: 7637 Min: 39 Max: 21456 Err: 0 (0.00%)
summary + 12511 in 38s = 332.3/s Avg: 7110 Min: 5069 Max: 9998 Err: 0 (0.00%) Active: 3000 Started: 3000 Finished: 0
summary = 188587 in 493s = 382.7/s Avg: 7602 Min: 39 Max: 21456 Err: 0 (0.00%)
summary + 12147 in 39s = 314.1/s Avg: 7554 Min: 4700 Max: 12926 Err: 0 (0.00%) Active: 3000 Started: 3000 Finished: 0
summary = 200734 in 523s = 384.0/s Avg: 7599 Min: 39 Max: 21456 Err: 0 (0.00%)
summary + 13479 in 37.4s = 360.0/s Avg: 6601 Min: 4692 Max: 9343 Err: 0 (0.00%) Active: 3000 Started: 3000 Finished: 0
summary = 214213 in 553s = 387.5/s Avg: 7536 Min: 39 Max: 21456 Err: 0 (0.00%)
summary + 12934 in 38s = 341.2/s Avg: 6994 Min: 5108 Max: 10163 Err: 0 (0.00%) Active: 3000 Started: 3000 Finished: 0
summary = 227147 in 583s = 389.7/s Avg: 7505 Min: 39 Max: 21456 Err: 0 (0.00%)
summary + 13186 in 37.1s = 355.1/s Avg: 6777 Min: 5141 Max: 9263 Err: 0 (0.00%) Active: 3000 Started: 3000 Finished: 0
summary = 240333 in 613s = 392.2/s Avg: 7465 Min: 39 Max: 21456 Err: 0 (0.00%)
summary + 13866 in 39s = 359.3/s Avg: 6445 Min: 4513 Max: 8881 Err: 0 (0.00%) Active: 3000 Started: 3000 Finished: 0
summary = 254199 in 643s = 395.5/s Avg: 7410 Min: 39 Max: 21456 Err: 0 (0.00%)
summary + 13119 in 38.3s = 342.6/s Avg: 6958 Min: 4981 Max: 10002 Err: 0 (0.00%) Active: 3000 Started: 3000 Finished: 0
summary = 267318 in 673s = 397.4/s Avg: 7387 Min: 39 Max: 21456 Err: 0 (0.00%)
summary + 13629 in 37.1s = 367.4/s Avg: 6544 Min: 4769 Max: 8823 Err: 0 (0.00%) Active: 3000 Started: 3000 Finished: 0
summary = 280947 in 703s = 399.8/s Avg: 7346 Min: 39 Max: 21456 Err: 0 (0.00%)
summary + 12546 in 38s = 330.6/s Avg: 7252 Min: 4751 Max: 9940 Err: 0 (0.00%) Active: 2735 Started: 3000 Finished: 265
summary = 293493 in 733s = 400.5/s Avg: 7342 Min: 39 Max: 21456 Err: 0 (0.00%)
summary + 6507 in 22.2s = 293.4/s Avg: 5450 Min: 146 Max: 9107 Err: 0 (0.00%) Active: 0 Started: 3000 Finished: 3000
summary = 300000 in 748s = 401.1/s Avg: 7301 Min: 39 Max: 21456 Err: 0 (0.00%)
Tidying up ... @ Fri Apr 07 17:58:15 CST 2017 (1491559095281)
... end of run
D:\java\apache-jmeter-2.12\bin>
出错率依然为0,所有请求全部成功。
将并发数提高到4000,生产消费情况很好:
消费入库也没有问题:
Jmeter测试结果:
Starting the test @ Fri Apr 07 18:22:37 CST 2017 (1491560557507)
Waiting for possible shutdown message on port 4445
summary + 3775 in 21s = 181.0/s Avg: 4033 Min: 31 Max: 8840 Err: 0 (0.00%) Active: 4000 Started: 4000 Finished: 0
summary + 7477 in 40.4s = 185.1/s Avg: 13595 Min: 5657 Max: 20767 Err: 0 (0.00%) Active: 4000 Started: 4000 Finished: 0
summary = 11252 in 51s = 221.2/s Avg: 10387 Min: 31 Max: 20767 Err: 0 (0.00%)
summary + 10320 in 43s = 241.5/s Avg: 11598 Min: 8916 Max: 14707 Err: 0 (0.00%) Active: 4000 Started: 4000 Finished: 0
summary = 21572 in 81s = 266.8/s Avg: 10966 Min: 31 Max: 20767 Err: 0 (0.00%)
summary + 10138 in 43.4s = 233.4/s Avg: 11722 Min: 9626 Max: 14636 Err: 0 (0.00%) Active: 4000 Started: 4000 Finished: 0
summary = 31710 in 111s = 286.0/s Avg: 11208 Min: 31 Max: 20767 Err: 0 (0.00%)
summary + 10008 in 43s = 233.0/s Avg: 11985 Min: 9790 Max: 15285 Err: 0 (0.00%) Active: 4000 Started: 4000 Finished: 0
summary = 41718 in 141s = 296.2/s Avg: 11395 Min: 31 Max: 20767 Err: 0 (0.00%)
summary + 10050 in 45s = 225.8/s Avg: 12009 Min: 9999 Max: 14859 Err: 0 (0.00%) Active: 4000 Started: 4000 Finished: 0
summary = 51768 in 171s = 303.0/s Avg: 11514 Min: 31 Max: 20767 Err: 0 (0.00%)
summary + 10202 in 44.2s = 230.8/s Avg: 11879 Min: 9765 Max: 14854 Err: 0 (0.00%) Active: 4000 Started: 4000 Finished: 0
summary = 61970 in 201s = 308.5/s Avg: 11574 Min: 31 Max: 20767 Err: 0 (0.00%)
summary + 10566 in 44s = 242.0/s Avg: 11527 Min: 9058 Max: 14406 Err: 0 (0.00%) Active: 4000 Started: 4000 Finished: 0
summary = 72536 in 231s = 314.2/s Avg: 11567 Min: 31 Max: 20767 Err: 0 (0.00%)
summary + 10372 in 43s = 241.7/s Avg: 11385 Min: 8889 Max: 14825 Err: 0 (0.00%) Active: 4000 Started: 4000 Finished: 0
summary = 82908 in 261s = 317.8/s Avg: 11544 Min: 31 Max: 20767 Err: 0 (0.00%)
summary + 10358 in 44s = 237.7/s Avg: 11415 Min: 8957 Max: 14799 Err: 0 (0.00%) Active: 4000 Started: 4000 Finished: 0
summary = 93266 in 291s = 320.7/s Avg: 11530 Min: 31 Max: 20767 Err: 0 (0.00%)
summary + 10422 in 44.3s = 235.5/s Avg: 11467 Min: 8756 Max: 14886 Err: 0 (0.00%) Active: 4000 Started: 4000 Finished: 0
summary = 103688 in 321s = 323.2/s Avg: 11524 Min: 31 Max: 20767 Err: 0 (0.00%)
summary + 8421 in 44s = 192.9/s Avg: 13620 Min: 10138 Max: 19553 Err: 0 (0.00%) Active: 4000 Started: 4000 Finished: 0
summary = 112109 in 351s = 319.5/s Avg: 11681 Min: 31 Max: 20767 Err: 0 (0.00%)
summary + 9998 in 48s = 208.6/s Avg: 12642 Min: 9717 Max: 18517 Err: 0 (0.00%) Active: 4000 Started: 4000 Finished: 0
summary = 122107 in 381s = 320.6/s Avg: 11760 Min: 31 Max: 20767 Err: 0 (0.00%)
summary + 10593 in 42.5s = 249.5/s Avg: 11119 Min: 8767 Max: 14794 Err: 0 (0.00%) Active: 4000 Started: 4000 Finished: 0
summary = 132700 in 411s = 323.0/s Avg: 11709 Min: 31 Max: 20767 Err: 0 (0.00%)
summary + 10306 in 44.3s = 232.7/s Avg: 11958 Min: 9246 Max: 15741 Err: 0 (0.00%) Active: 4000 Started: 4000 Finished: 0
summary = 143006 in 441s = 324.4/s Avg: 11727 Min: 31 Max: 20767 Err: 0 (0.00%)
summary + 9773 in 44s = 222.6/s Avg: 11779 Min: 9441 Max: 16077 Err: 0 (0.00%) Active: 4000 Started: 4000 Finished: 0
summary = 152779 in 471s = 324.5/s Avg: 11730 Min: 31 Max: 20767 Err: 0 (0.00%)
summary + 9884 in 45.2s = 218.9/s Avg: 12577 Min: 9397 Max: 16392 Err: 0 (0.00%) Active: 4000 Started: 4000 Finished: 0
summary = 162663 in 501s = 324.8/s Avg: 11781 Min: 31 Max: 20767 Err: 0 (0.00%)
summary + 10397 in 44.1s = 235.9/s Avg: 11480 Min: 9245 Max: 14618 Err: 0 (0.00%) Active: 4000 Started: 4000 Finished: 0
summary = 173060 in 531s = 326.0/s Avg: 11763 Min: 31 Max: 20767 Err: 0 (0.00%)
summary + 10198 in 44s = 232.1/s Avg: 11824 Min: 9621 Max: 15128 Err: 0 (0.00%) Active: 4000 Started: 4000 Finished: 0
summary = 183258 in 561s = 326.7/s Avg: 11767 Min: 31 Max: 20767 Err: 0 (0.00%)
summary + 10274 in 45s = 230.5/s Avg: 11789 Min: 9241 Max: 15208 Err: 0 (0.00%) Active: 4000 Started: 4000 Finished: 0
summary = 193532 in 591s = 327.5/s Avg: 11768 Min: 31 Max: 20767 Err: 0 (0.00%)
summary + 8742 in 43.1s = 202.9/s Avg: 11526 Min: 9322 Max: 18529 Err: 0 (0.00%) Active: 4000 Started: 4000 Finished: 0
summary = 202274 in 621s = 325.8/s Avg: 11757 Min: 31 Max: 20767 Err: 0 (0.00%)
summary + 6924 in 48.3s = 143.4/s Avg: 18617 Min: 12234 Max: 25378 Err: 0 (0.00%) Active: 4000 Started: 4000 Finished: 0
summary = 209198 in 651s = 321.4/s Avg: 11984 Min: 31 Max: 25378 Err: 0 (0.00%)
summary + 9617 in 48s = 201.1/s Avg: 13147 Min: 9157 Max: 19361 Err: 0 (0.00%) Active: 4000 Started: 4000 Finished: 0
summary = 218815 in 681s = 321.4/s Avg: 12036 Min: 31 Max: 25378 Err: 0 (0.00%)
summary + 6942 in 46s = 151.7/s Avg: 15959 Min: 10978 Max: 22863 Err: 0 (0.00%) Active: 4000 Started: 4000 Finished: 0
summary = 225757 in 711s = 317.6/s Avg: 12156 Min: 31 Max: 25378 Err: 0 (0.00%)
summary + 7144 in 50s = 143.5/s Avg: 17153 Min: 13563 Max: 22321 Err: 0 (0.00%) Active: 4000 Started: 4000 Finished: 0
summary = 232901 in 741s = 314.4/s Avg: 12309 Min: 31 Max: 25378 Err: 0 (0.00%)
summary + 7111 in 49s = 145.7/s Avg: 16632 Min: 13788 Max: 21481 Err: 0 (0.00%) Active: 4000 Started: 4000 Finished: 0
summary = 240012 in 771s = 311.4/s Avg: 12438 Min: 31 Max: 25378 Err: 0 (0.00%)
summary + 7329 in 51.3s = 142.9/s Avg: 16884 Min: 12875 Max: 22005 Err: 0 (0.00%) Active: 4000 Started: 4000 Finished: 0
summary = 247341 in 801s = 308.8/s Avg: 12569 Min: 31 Max: 25378 Err: 0 (0.00%)
summary + 7790 in 48.4s = 160.9/s Avg: 15362 Min: 12965 Max: 19288 Err: 0 (0.00%) Active: 4000 Started: 4000 Finished: 0
summary = 255131 in 831s = 307.1/s Avg: 12655 Min: 31 Max: 25378 Err: 0 (0.00%)
summary + 7025 in 49s = 144.2/s Avg: 16705 Min: 13182 Max: 22360 Err: 0 (0.00%) Active: 4000 Started: 4000 Finished: 0
summary = 262156 in 861s = 304.5/s Avg: 12763 Min: 31 Max: 25378 Err: 0 (0.00%)
summary + 7745 in 52s = 149.8/s Avg: 15742 Min: 12697 Max: 22083 Err: 0 (0.00%) Active: 4000 Started: 4000 Finished: 0
summary = 269901 in 891s = 303.0/s Avg: 12849 Min: 31 Max: 25378 Err: 0 (0.00%)
summary + 8206 in 48.2s = 170.3/s Avg: 15240 Min: 11474 Max: 19585 Err: 0 (0.00%) Active: 4000 Started: 4000 Finished: 0
summary = 278107 in 921s = 302.0/s Avg: 12919 Min: 31 Max: 25378 Err: 0 (0.00%)
summary + 8932 in 47s = 190.8/s Avg: 13550 Min: 9848 Max: 18164 Err: 0 (0.00%) Active: 4000 Started: 4000 Finished: 0
summary = 287039 in 951s = 301.9/s Avg: 12939 Min: 31 Max: 25378 Err: 0 (0.00%)
summary + 8380 in 44.4s = 188.6/s Avg: 14486 Min: 10374 Max: 20302 Err: 0 (0.00%) Active: 4000 Started: 4000 Finished: 0
summary = 295419 in 981s = 301.2/s Avg: 12983 Min: 31 Max: 25378 Err: 0 (0.00%)
summary + 6311 in 44.2s = 142.9/s Avg: 16150 Min: 10329 Max: 23918 Err: 0 (0.00%) Active: 4000 Started: 4000 Finished: 0
summary = 301730 in 1011s = 298.5/s Avg: 13049 Min: 31 Max: 25378 Err: 0 (0.00%)
summary + 6426 in 54s = 119.6/s Avg: 20032 Min: 11370 Max: 27921 Err: 0 (0.00%) Active: 4000 Started: 4000 Finished: 0
summary = 308156 in 1041s = 296.0/s Avg: 13195 Min: 31 Max: 27921 Err: 0 (0.00%)
summary + 6779 in 50.3s = 134.9/s Avg: 16057 Min: 11880 Max: 23077 Err: 0 (0.00%) Active: 4000 Started: 4000 Finished: 0
summary = 314935 in 1071s = 294.1/s Avg: 13256 Min: 31 Max: 27921 Err: 0 (0.00%)
summary + 3598 in 52.5s = 68.6/s Avg: 25638 Min: 17444 Max: 39481 Err: 0 (0.00%) Active: 4000 Started: 4000 Finished: 0
summary = 318533 in 1101s = 289.3/s Avg: 13396 Min: 31 Max: 39481 Err: 0 (0.00%)
summary + 7326 in 66s = 111.3/s Avg: 21817 Min: 12664 Max: 39509 Err: 0 (0.00%) Active: 4000 Started: 4000 Finished: 0
summary = 325859 in 1131s = 288.1/s Avg: 13585 Min: 31 Max: 39509 Err: 0 (0.00%)
summary + 9141 in 50s = 183.1/s Avg: 13977 Min: 10441 Max: 20329 Err: 0 (0.00%) Active: 4000 Started: 4000 Finished: 0
summary = 335000 in 1161s = 288.6/s Avg: 13596 Min: 31 Max: 39509 Err: 0 (0.00%)
summary + 8759 in 45.3s = 193.5/s Avg: 13192 Min: 10427 Max: 18457 Err: 0 (0.00%) Active: 4000 Started: 4000 Finished: 0
summary = 343759 in 1191s = 288.7/s Avg: 13586 Min: 31 Max: 39509 Err: 0 (0.00%)
summary + 6335 in 48s = 132.0/s Avg: 16089 Min: 10872 Max: 25864 Err: 0 (0.00%) Active: 4000 Started: 4000 Finished: 0
summary = 350094 in 1221s = 286.8/s Avg: 13631 Min: 31 Max: 39509 Err: 0 (0.00%)
summary + 4110 in 55s = 74.7/s Avg: 29966 Min: 19602 Max: 41019 Err: 0 (0.00%) Active: 4000 Started: 4000 Finished: 0
summary = 354204 in 1251s = 283.2/s Avg: 13821 Min: 31 Max: 41019 Err: 0 (0.00%)
summary + 9776 in 61s = 161.5/s Avg: 14348 Min: 9914 Max: 33466 Err: 0 (0.00%) Active: 4000 Started: 4000 Finished: 0
summary = 363980 in 1281s = 284.2/s Avg: 13835 Min: 31 Max: 41019 Err: 0 (0.00%)
summary + 9719 in 44s = 223.0/s Avg: 12375 Min: 9964 Max: 16078 Err: 0 (0.00%) Active: 3984 Started: 4000 Finished: 16
summary = 373699 in 1311s = 285.1/s Avg: 13797 Min: 31 Max: 41019 Err: 0 (0.00%)
summary + 10064 in 44.1s = 228.4/s Avg: 11693 Min: 9309 Max: 15164 Err: 0 (0.00%) Active: 3709 Started: 4000 Finished: 291
summary = 383763 in 1341s = 286.2/s Avg: 13742 Min: 31 Max: 41019 Err: 0 (0.00%)
summary + 8972 in 45s = 201.2/s Avg: 12063 Min: 9116 Max: 16202 Err: 0 (0.00%) Active: 3015 Started: 4000 Finished: 985
summary = 392735 in 1371s = 286.5/s Avg: 13703 Min: 31 Max: 41019 Err: 0 (0.00%)
summary + 7265 in 30s = 246.2/s Avg: 7274 Min: 15 Max: 13934 Err: 0 (0.00%) Active: 0 Started: 4000 Finished: 4000
summary = 400000 in 1387s = 288.3/s Avg: 13586 Min: 15 Max: 41019 Err: 0 (0.00%)
Tidying up ... @ Fri Apr 07 18:45:46 CST 2017 (1491561946415)
... end of run
D:\java\apache-jmeter-2.12\bin>
可见,依然没有问题。