性能调优 性能监控

1.影响性能考虑点包括:

数据库、应用程序、中间件(tomcat、nginx)、网络和操作系统等方面。

首先考虑自己的应用属于 CPU密集型 还是 IO密集型

cpu密集型

计算,排序,分组查询,各种算法

IO密集型

网络传输,磁盘读写,数据库,redis

2.JVM监控 

因为JVM的 本地方法栈 程序计数器 虚拟机栈 是由JVM自动回收的,所以这里不需要进行调优,我们所说的调优,是 堆调优 

内存分配模型

具体去看我的 JVM文章

JConsole与 jvisualvm工具

输入这个命令

 jvisualvm工具

cmd命令

运行:正在运行的

休眠:sleep

等待:wait

驻留:线程池里面的空闲线程

 监视:阻塞的线程,正在等待锁

下载常用插件

 

根据显示,我的这个应用是IO密集型的,CPU占用不高 ,而内存消耗大,说明就是传输数据的应用 

3.性能压测 - 优化 -中间件对性能的影响 

怎么优化

使用JMeter 进行压力测试

3.1 压测 Nginx

创建线程组 ,勾选循环次数永远  来达到不断监测的效果 

配置好

然后去虚拟机先打开CPU检测

docker stats

 

打开监控以后,开始压测

 

 说明Nginx属于CPU计算型,不占内存,但是需要线程来进行操作转发

压测分析
压测内容压测线程数吞吐量/s90%响应时间99%响应时间
Nginx507459.91048
GateWay502967.52440
简单服务5010461.5678
首页一级菜单渲染50488(db,thymeleaf)196369
首页渲染(开缓存)50109281149
首页渲染(开缓存,优化数据库,关日志)120070132
三级分类数据获取509.9(db)/15(优化后·)54325855
首页全量数据获取502031753923
Nginx+GateWay50
Gateway+简单服务50221051102
全链路50113.84986

 中间件越多,性能损失越大,大多都损失在网络交互了

解决方案:

1.提高中间件的性能

2.买更好的网线

3.买更好的网卡

优化业务

业务功能:

  •   DB(MYSQL 优化)
  •   模板渲染速度(Thymeleaf)  打开缓存
  •   静态资源

 3.2 压测网关

因为404 返回这个,不过没关系,我们打开 jvisualvm

一直在进行垃圾回收 

3.3 压测服务

写了个测试接口返回 hello

3.4 压测整个页面

  • 21
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值