springboot高级篇的学习

135 阅读2分钟

成为中级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直接返回