测试java配置好_部署测试JAVA Web和Tomcat配置优化

b1a18180641b71fe15f9eda06c1d4422.png

d1a3185561a6b751ab6bd62c1ffeb648.png

四、Tomecat配置优化

简介:

通过上面测试可以看出,tomcat在不做任何调整时,吞吐量为73次/秒

1.禁用AJP服务

50c1ab57b3cb6409dfeb9aec1c7c9b31.png

可以看到,禁用AJP服务后,吞吐量会有所提升。当然了,测试不一定准确,需要多测试几次才能看出是否有提升。

2.设置线程池

通过设置线程池,调整线程池相关的参数进行测试tomcat的性能。

2.1.最大线程数为500,初始为50

结果如下:

90969aa8baa3298451ce134cf7221863.png

吞吐量为128次/秒,性能有所提升。

2.2最大线程数为1000,初始为200

57c6b9635fdadc0acf4c7fb46f825280.png

吞吐量为151,性能有所提升。

2.3最大线程数为5000,初始为1000

是否是线程数最多,速度越快呢? 我们来测试下

ad7c60f0b44565cb10d61ab185c80598.png

可以看到,虽然最大线程已经设置到5000,但是实际测试效果并不理想,并且平均的响应时间也边长了,所以单纯靠提升线程数量是不能一直得到性能提升的

2.4设置最大等待队列数

默认情况下,请求发送到tomcat,如果tomcat正忙,那么该请求会一直等待。这样虽然可以保证每个请求都能请求到,但是请求时间就会边长。有些时候,我们也不一定要求请求一定等待,可以设置最大等待队列大小,如果超过就不等待了。这样虽然有些请求是失败的,但是请求时间会虽短。典型的应用:12306。

4b36370bd004cf6c68c0eede532da32c.png

测试结果:

平均响应时间:3.1秒

响应时间明显缩短

错误率:49.88%

错误率提升到一半,也可以理解,最大线程为500,测试的并发为1000

吞吐量:238次/秒

吞吐量明显提升

结论:响应时间、吞吐量这2个指标需要找到平衡才能达到更好的性能。

3.设置nio2的运行模式

将最大线程设置为500进行测试:

e9c74b9e3c2fa024a7244e5a85b7a1fe.png

4.调整JVM参数进行优化

接下来,测试通过jvm参数进行优化,为了测试一致性,依然将最大线程数设置为500,启用nio2运行模式。

修改catalina.sh配置文件

JAVA_OPTS="‐XX:+UseParallelGC ‐XX:+UseParallelOldGC ‐Xms64m ‐Xmx512m ‐ XX:+PrintGCDetails ‐XX:+PrintGCTimeStamps ‐XX:+PrintGCDateStamps ‐ XX:+PrintHeapAtGC ‐Xloggc:../logs/gc.log"

2f5a5b790f82faaff53e6213f235a7fd.png

测试结果与默认的JVM参数结果接近。

设置G1垃圾回收器

#设置了最大停顿时间100毫秒,初始堆内存128m,最大堆内存1024m JAVA_OPTS="‐XX:+UseG1GC ‐XX:MaxGCPauseMillis=100 ‐Xms128m ‐Xmx1024m ‐ XX:+PrintGCDetails ‐XX:+PrintGCTimeStamps ‐XX:+PrintGCDateStamps ‐ XX:+PrintHeapAtGC ‐Xloggc:../logs/gc.log"

2f208084e973577ddd16554b12f6ab13.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值