成为中级java开发程序员一直是我的目标,所以我现在将步入中级开发的学习,调优这一块是要会的,所以勉励,加油。
jmeter用来进行压力测试
jvisualvm能干什么
监控内存泄漏,跟踪垃圾回收,执行时内存,cpu分析,线程分析... 绿色 运行 | 紫色 休眠 | 黄色 等待 | 橙色 驻留 | 粉色 监视 运行:正在运行的 休眠:sleep 等待:wait 驻留:线程池里面的空闲线程 监视:阻塞的线程,正在等待锁 想要监控垃圾回收需要安装插件 详情请看谷粒商城p145
压测内容 压测线程数 吞吐量/s 90%响应时间 99%响应时间
Nginx 50 2335 11 944
Gateway 50 10367 8 31
简单服务 50 11341 8 17
首页一级菜单渲染 50 270 267 365 慢的原因是(db,thymeleaf)
首页(开thymeleaf缓存) 50 290 251 365
首页(开thymeleaf缓存+数据库优化)50 700 105 183 关掉日志打印,把打印级别设置为erro或者info。给查询字段加上索引提升db速度。开启thymeleaf缓存
三级分类数据获取 50 2/8(加索引优化后) 24000 24000 慢的原因是(db)循环查库了
首页全量数据获取 50 7 慢的原因是静态资源
Nginx+ Gateway 50
Gateway +简单服务 50 3126 30 125
全链路(Nginx+Gateway+简单服务) 50 800 88 310
2021-12-31 14:22:00
中间件越多,性能损失越大,大多都损失在网络交互了。
业务:
db(MySql优化) 查询没有索引的字段会去全表查询,给字段加上索引会提升db速度
模板的渲染速度(缓存) 打开thymeleaf缓存了会有提升
静态资源
优化方法:
sql调优
打开模板缓存
关掉打印日志,将打印日志设置为erro或info
数据库优化,给查询字段加上索引能提升查询效率
ngnix动静分离
1.将项目的静态资源放在nginx里面(在nginx的html文件夹下建一个static文件夹用来存放静态资源)
2.规则:/static/**所有请求都由nginx直接返回