发表于: 2019-11-30 23:02:20
1 1770
今天完成的事:
1、本地压测。
先使用一个tomcat测试有无缓存的区别。
(1)无缓存、无负载均衡。
首页:
响应时间在开始的长时间后,后面基本稳定在200ms左右。
TPS则大部分在35-55,60-85之间。没有平缓区,比较零散。
职业列表:
响应时间在开始的长时间后,后面基本稳定在300ms左右。
TPS则大部分在55-83之间。没有平缓区,比较零散。
(2)有缓存、无负载均衡。
首页:
响应时间基本稳定在160-180ms左右。
TPS则大部分在100-120之间。
TPS较为平稳时,在100-120之间,响应时间在160-180ms。
测试了几次效果都差不多。
职业列表:
响应时间大部分在240-360ms。
TPS则大部分在60-75之间。
TPS较为平稳时,在60-75之间,响应时间在240-360ms。
测试几次效果都差不多。
(3)无缓存、有负载均衡。
首页:
响应时间大部分在300ms左右。
TPS则大部分在50-85之间。没有平缓区,比较零散。
职业列表:
响应时间大部分在300-400ms。
TPS一直在上升,没有平缓区。
(4)有缓存、有负载均衡。
首页:
响应时间大部分在200-270ms。
TPS则大部分在70-85之间。
TPS较为平稳时,在80-85之间,响应时间在235ms左右。
测几次都差不多,看了下,CPU最高95%,80多常见。
职业列表:
响应时间大部分在240-300ms。
TPS则大部分在64-80之间。
TPS较为平稳时,在64-80之间,响应时间在270ms左右。
测几次都差不多。
总结:
无缓存无负载时,TPS没有平缓区,比较零散。
首页,响应时间在开始的长时间后,后面基本稳定在200ms左右。
TPS则大部分在35-55,60-85之间。没有平缓区,比较零散。
列表,响应时间在开始的长时间后,后面基本稳定在300ms左右。
TPS则大部分在55-83之间。没有平缓区,比较零散。
有缓存无负载时,响应时间降低,TPS增加。
首页,TPS较为平稳时,在100-120之间,响应时间在160-180ms。
列表,TPS较为平稳时,在60-75之间,响应时间在240-360ms。
添加负载均衡后,首页都增加了响应时间、降低了TPS。列表页则相差不大。
首页,TPS较为平稳时,在80-85之间,响应时间在235ms左右。
列表,TPS较为平稳时,在64-80之间,响应时间在270ms左右。
2、查看nginx配置。
发现nginx处理时间比tomcat处理时间多了太多。
nginx:
tomcat:
有缓存无负载,端口号改成8080试试。
绕过nginx分配就会快好多。
好快好快。
试了一些配置都没有用,询问师兄,说只应该查看自己代码是不是设计的有问题,不应该想着去配置nginx的配置。。这里就先这样吧,回头单独学下nginx的配置,感觉有很多参数,需要时间去学习。
3、查看性能瓶颈。
电脑配置和相关CPU查看。
有缓存无负载,压测首页70*50。
100*50,CPU最高到75%。TPS没什么变化,只有响应时间增加。
150*50,CPU最高到97%,80多也很常见。再测感觉电脑受不了了。TPS下降,响应时间增加。
这么说的话,性能瓶颈也就是70*50了呗。
4、压测报告。
测试内容:测试缓存、负载均衡对响应时间、TPS值的影响。
测试方法:使用jmeter进行压测,由badboy生成脚本。
共测试两个接口,首页以及职业列表页,分为有无缓存、有无负载均衡4种情况进行测试。
测试目标:到达修真院测试要求,如下。
测试环境:使用本地电脑进行测试。配置如下。
系统部署:
tomcat-8.5.45 端口8080
tomcat-8.5.45 端口8087
mysql-5.7.27
nginx-1.12.2
redis-x64-3.2.100
测试结果(详细见上文):
无缓存无负载时,TPS没有平缓区,比较零散。
首页,响应时间在开始的长时间后,后面基本稳定在200ms左右。
TPS则大部分在35-55,60-85之间。没有平缓区,比较零散。
列表,响应时间在开始的长时间后,后面基本稳定在300ms左右。
TPS则大部分在55-83之间。没有平缓区,比较零散。
有缓存无负载时,响应时间降低,TPS增加。
首页,TPS较为平稳时,在100-120之间,响应时间在160-180ms。
列表,TPS较为平稳时,在60-75之间,响应时间在240-360ms。
添加负载均衡后,首页都增加了响应时间、降低了TPS。列表页则相差不大。
首页,TPS较为平稳时,在80-85之间,响应时间在235ms左右。
列表,TPS较为平稳时,在64-80之间,响应时间在270ms左右。
即:在20线程,50循环,1秒间隔的测试下。
添加缓存、不使用负载均衡,可以有效缩短响应时间,增加TPS值。
5、测试返回json数据。
直接加上RequestBody注解,慢,在原有的基础上还要转换list为json数据,肯定慢。
取出json字符串直接返回,中文乱码,但是idea控制台输出是好好的。
postman测试乱码。idea中没事。
职业列表接口,取出json字符串后,转为list,添加map集合,再转为json数据输出。
取出json数据直接放入map,转为json输出。。
什么玩意。。
百度一下,responsebody返回的是json对象,这里需要将json字符串进行转化。
于是首页的问题算是解决了,加了一步将json字符串转为json集合,而后直接返回即可。但是职业列表也这样转为json集合,再一个一个放入map中,再转为json数据返回吗??太绕了。
明天计划的事:
1、提交任务六。
2、查看任务七要求,进行任务七。
遇到的问题:
1、压测不达标,响应太慢。
2、返回json进行压测,特别慢,暂未解决。
收获:
无
评论