现在压测单独访问首页不经过中间件的请求

1.压测获取一级分类
还是像前面那样添加线程组,添加http请求

运行一段时间稳定后,查看聚合报告

根据聚合报告填表

打开jvisualvm发现minor gc因为伊甸园区内存小所以很频繁,非常影响效率

2.压测获取所有三级分类数据

添加http请求

查看聚合报告

填表,这里响应时间有点离谱了,响应时间就做个参考,主要还是看吞吐量,如果用另外一台机器压测,结果数据会标准点,这里只做参考用于发现问题即可

3.压测获取首页全部内容(除一级分类外还包括页面的静态资源)
在高级内如下设置下

添加http请求,与压测一级分类时一样

查看聚合报告

填表

4.思考优化方案
上一篇可以明显的看到中间件对性能的影响,现在列举下压测这么久了解到的引起性能损失的点
(1)中间件:中间件越多,性能损失越大,浪费在网络交互上了
(2)db:这个不用多说
(3)tymeleaf:模板的渲染速度
(4)静态资源: 静态资源还放在项目中,也要向tomcat发送请求获取
5. 动手
(1)tymeleaf模板缓存开启
tymeleaf模板缓存我们之前是关闭的,现在打开

不获取静态资源

再次测试
跟之前对比吞吐量提升了几十
之前230多,现在290左右

(2)数据库方面优化
调整日志级别,添加索引
之前每一次数据库查询都会打印出来,那是本地,打上环境改成error级别

改掉后

添加索引,我们用parent_cid这个字段查询的一级分类

添加计算查询时间
@Override
public List<CategoryEntity> findCatelog1s() {
long l = System.currentTimeMillis();
List<CategoryEntity> categoryEntities = this.list(new QueryWrapper<CategoryEntity>().eq("parent_cid", 0));
System.out.println("消耗时间:"+(System.currentTimeMillis()-l));
return categoryEntities;
}
添加索引
![]()

添加索引前

添加索引后 从平均值上来看还是快了不少

6.优化后的压测
在上面做了开启tymeleaf缓存,调整日志级别为error及添加索引后再来重新压测之前的请求
一级分类

三级分类

全量数据(一级分类+静态资源)

填表

发现除了全量数据的获取之外,其它请求的性能都有了显著提升,为啥呢,静态资源的请求还是通过tomcat
这就涉及到下一篇的nginx动静分离了

本文通过压力测试揭示了网站性能瓶颈所在,并实施了针对性优化措施,包括开启模板缓存、调整数据库日志级别与添加索引等,显著提升了网站的响应速度和吞吐量。

被折叠的 条评论
为什么被折叠?



