大家好,又见面了,我是你们的朋友全栈君。
1. 测试情况概述
- 本次压测目标是tomcat8和tomcat7性能比较,压测场景是:用户注册场景(关闭日志), 压测过程中,监测应用服务器和db服务器的资源使用情况,
监测内存回收情况;同时监控各涉及系统的处理能力, 判断tomcat8的性能是否优于tomcat7,是否满足现网实际业务需求.
压测目标 |
tomcat8和tomcat7性能比较, 判断tomcat8的性能是否优于tomcat7,是否满足实际业务需求 |
压测场景 |
用户注册场景(关闭日志) 场景一:Tomcat7和tomcat8,并发数30个用户相同的情况下,分别压测时间为30分钟、2个小时、4个小时、12个小时、72个小时。 场景二:Tomcat7和tomcat8,并发数从10~100区间,压测时间为30分钟。 |
涉及系统 |
(server端)、(会员)、(认证)、(风控) |
涉及数据库 |
mysql读写操作(数据量与线上保持一致,会员数据1000W) |
其他 |
Redis/Kafka/AMQ |
系统配置 |
CPU8核(4个系统),内存24G |
内存配置 |
内存配置相同:-Xmx3g -Xms3g -Xmn1g |
线程配置 |
线程配置相同:maxThreads=”400″ acceptCount=”200″ maxConnections 默认10000 |
|
ulimit -n 65535 |
2. 测试结果
1) 测试场景:Tomcat7和tomcat8,并发数30个用户相同的情况下,分别压测时间为30分钟、2个小时、4个小时、12个小时、72个小时。
以下是测试情况的详细数据:
tomcat分类 |
并发数 |
运行时间 |
总数 |
TPS |
Average resptime |
90% |
95% |
99% |
error |
应用CPU |
DB CPU(tnp xhy auth) |
DB CPU(wfm) |
内存情况 |
Tomcat7 |
30 |
30mins |
101788 |
56.6 |
486ms |
648ms |
712ms |
865ms |
0.01% |
77.10% |
13% |
13% |
内存回收正常 |
30 |
2hours |
404893 |
56.2 |
492ms |
666ms |
742ms |
973ms |
1% |
74.40% |
13.60% |
12.20% |
内存回收正常 | |
30 |
4hours |
864879 |
60 |
465ms |
599ms |
648ms |
756ms |
0% | 78% | 15% | 16% | 内存回收正常 | |
30 |
12hours |
2546818 |
59 |
473ms |
617ms |
678ms |
854ms |
0.78% |
76.00% |
14.20% |
16.70% |
内存回收正常 | |
Tomcat8 |
30 |
30mins |
149962 |
83 |
314ms |
436ms |
502ms |
781ms |
0% |
81.90% |
10% |
10% |
内存回收正常 |
30 |
2hours |
645248 |
89.6 |
298ms |
416ms |
469ms |
665ms |
0% |
80% |
10% |
11% |
内存回收正常 | |
30 |
4hours |
1165913 |
81 |
298ms |
427ms |
479ms |
614ms |
0% |
75.6% | 14.6% | 17.5% | 内存回收正常 | |
30 |
12hours |
3594609 |
83.2 |
291ms |
418ms |
469ms |
621ms |
6% |
76.70% |
14.40% |
16.80% |
内存回收正常 | |
15 |
72hours |
10032761 |
40 |
274ms |
398ms |
423ms |
524ms |
0.4% |
43.20% |
16.00% |
18.00% |
内存回收正常
|
2) 测试场景:Tomcat7和tomcat8,并发数从10~100区间,压测时间为30分钟。
以下是测试情况的详细数据:
Tomcat分类
|
并发数
|
压测时间 |
平均响应时间 |
99%响应时间 |
tps |
总处理数 |
Tomcat8 |
10 |
30mins |
171ms |
357ms |
48.7 |
87714 |
20 |
30mins |
324ms |
577ms |
54.4 |
97848 |
|
30 |
30mins |
314ms |
781ms |
83 |
149962 |
|
40 |
30mins |
396ms |
740ms |
88.2 |
158781 |
|
50 |
30mins |
494ms |
953ms |
86.3 |
155355 |
|
60 |
30mins |
619ms |
1235ms |
84.4 |
151890 |
|
70 |
30mins |
757ms |
1907ms |
77.8 |
140070 |
|
80 |
30mins |
813ms |
1587ms |
83.3 |
149724 |
|
90 |
30mins |
901ms |
1766ms |
84.5 |
152129 |
|
100 |
30mins |
1004ms |
1900ms |
84 |
151286 |
Tomcat分类 |
并发数 |
压测时间 |
平均响应时间 |
99%响应时间 |
tps |
总处理数 |
Tomcat7 |
10 |
30mins |
176ms |
361ms |
47.8 |
86046 |
20 |
30mins |
314ms |
540ms |
56 |
100805 |
|
30 |
30mins |
486ms |
865ms |
56.6 |
101788 |
|
40 |
30mins |
702ms |
1291ms |
52.3 |
94089 |
|
50 |
30mins |
803ms |
1353ms |
57.7 |
103941 |
|
60 |
30mins |
1009ms |
1787ms |
55.7 |
100302 |
|
70 |
30mins |
1120ms |
1981ms |
58.5 |
105291 |
|
80 |
30mins |
1307ms |
2421ms |
57.5 |
103572 |
|
90 |
30mins |
1436ms |
2592ms |
59.3 |
106675 |
|
100 |
30mins |
1633ms |
2962ms |
57.8 |
104142 |
3) 压测结论:
1.从以上第一组表格和图形对比得出,Tomcat8和tomcat7在相同配置和相同并发情况下,吞吐率和响应时间均优于tomcat7,可更快的处理更多的用户请求,测试过程中的CPU使用率相差不大。
2.从以上第二组表格和图形对比得出, Tomcat8在当前配置情况下,并发用户数为30以上,吞吐率和请求处理时间有明显的提升,达到最佳;而Tomcat7 ,并没有随着并发用户量增大,吞吐率和响应时间有更好的表现。
推出:Tomcat8在并发用户数上优于Tomcat7,可同时处理更多用户发起的请求,同时tomcat8的响应速度更快。测试过程中的CPU最高使用率:CPU使用率相差不大,均较高,达到70%。
说明:
本次压测在独立性能环境下进行,相关应用、db服务器均独立部署,不依赖其他环境系统。
压测过程:通过jmeter并发调用注册接口,同时通过nmon监测应用服务器和db服务器资源使用情况,同时监控缓存redis以及内存回收的性能情况
3. 总结和建议:
- Tomcat8和tomcat7在相同配置和相同并发情况下,tomcat8的吞吐量和响应时间均优于tomcat7,可更快的处理更多的用户请求,测试过程中的CPU使用率相差不大。
- 压测过程中,发现会员系统的异步记录日志消耗50%左右的cpu,目前线上日志级别是info,需根据重要程度调整日志级别。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/161093.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...