做了一个前后端分离项目,项目验收的时候第三方要做测试招标要求1000的并发。第三方用的是loadrunner12版本。录制了一个脚本就是打开你项目的登录页面然后输入账号密码登录进去,在退出。测试了十几分钟,结果很差,并发响应时间很慢,还报了很多错误。
测试的时候有三台服务器8核8G的,每台上面只有一个tomcat。很显然并发达不到。然后就把服务器配置提高到32核64G。每台服务器上三个tomcat。
tomcat配置
server.xml
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="2000" minSpareThreads="1000" />
<Connector executor="tomcatThreadPool" port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
redirectPort="8443" enableLookups="false"
acceptCount="5000" maxThreads="2000"
compression="on" compressionMinSize="2048"
maxConnections="10000"
URIEncoding="utf-8" />
jvm配置
JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8
-server -Xms16384m -Xmx16384m
-XX:NewSize=1024m -XX:MaxNewSize=1024m -XX:PermSize=1024m
-XX:MaxPermSize=1024m <span style="color:rgb(79,79,79);text-align:justify;">xx: +disableExplicaitGC</span>"
CATALINA_OPTS="-Djava.library.path=/data/tomcat/tomcat6080/lib"
改完tomcat配置,我自己下载了一个loadrunner测试只能测试50的并发没什么用,就用jmeter测并发,多次测试结果都不同,可能测个四五次其中又两次又问题。而且和jmeter测试的和loadrunner场景也不一样。
最后让第三方公司的又过来测试,还是有问题,只是比之前存在的问题少了很多。然后又加了两台服务器,又接着测结果不稳定(跟网络有关系),后来就说去机房测试一下。果然机房测试就好了很多,测试也通过了。