一、JMeter测试
针对相关数据的测试我们可以通过JMeter来直观的给大家来展示。我们在tomcat8.0的服务中部署一个war服务。
我们找一个FlowableUI的war包,正常启动:可以正常访问
然后我们通过JMeter来压测:
设置请求相关信息
选择几个监听器
然后执行:吞吐量:4103
然后我们禁用掉AJP
再测试:4149 稍微有点提升
然后我们自定义线程池
<!-- 自定义线程池 --> <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="500" minSpareThreads="50" prestartminSpareThreads="true"/> 复制代码
记得关联上
吞吐量:4188
我们把线程池的相关数据调整下:最大线程数1000,最小线程数100再看看
没有太大的区别,这时我们可以设置最大的等待队列:maxQueueSize="100"
我们可以发现当添加了最大阻塞队列后吞吐量提升到了5203了,提升效果显著,但是同样的异常率提升了很多32.6%,当然这也是正常的现象了。
最后我们修改下运行的模式。改为NIO2,同时不加最大等待队列来看看
<!-- 自定义线程池 --> <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="500" minSpareThreads="50" prestartminSpareThreads="true" /> <Connector executor="tomcatThreadPool" port="8080" protocol="org.apache.coyote.http11.Http11Nio2Protocol" connectionTimeout="20000" redirectPort="8443" /> 复制代码
正常情况下(150个线程 4个初始化)
300个线程 30个初始化
maxQueueSize=100
通过NIO2的方式来处理