当前位置: 首页 > news >正文

性能调优 性能监控

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 压测整个页面

相关文章:

  • Hadoop3:Yarn框架的三种调度算法
  • SUPERVIVE无法联机、联机失败、联机报错的解决办法分享
  • AI与音乐:终极对决,机械混音师将扬弃人类知识!
  • Webpack: 开发 PWA、Node、Electron 应用
  • C语言笔记27 •单链表介绍•
  • Yolov8可视化界面使用说明,含代码
  • FastAPI 基本路由
  • 新能源行业知识体系-------主目录-----持续更新
  • Java校园跑腿小程序校园代买帮忙外卖源码社区外卖源码
  • C语言的数据结构:图的操作
  • 不要再被骗了!电脑无法进入系统的原因可能是这个硬件坏了而已……
  • lodash.js 工具库
  • Follow Carl To Grow|【LeetCode】93.复原IP地址,78.子集,90.子集II
  • 小红书多账号管理平台哪个好用?可以快速监测多个小红书账号的数据吗?
  • Python 提取图片主色调
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • create-react-app做的留言板
  • ES6 ...操作符
  • go语言学习初探(一)
  • Javascripit类型转换比较那点事儿,双等号(==)
  • JS+CSS实现数字滚动
  • JS笔记四:作用域、变量(函数)提升
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • Python语法速览与机器学习开发环境搭建
  • Spring Cloud Feign的两种使用姿势
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • unity如何实现一个固定宽度的orthagraphic相机
  • Vue 动态创建 component
  • 动态规划入门(以爬楼梯为例)
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 技术:超级实用的电脑小技巧
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 数据科学 第 3 章 11 字符串处理
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • # 飞书APP集成平台-数字化落地
  • #{} 和 ${}区别
  • #{}和${}的区别?
  • #微信小程序:微信小程序常见的配置传旨
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • $.each()与$(selector).each()
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (四)linux文件内容查看
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • (已解决)什么是vue导航守卫
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • .Net Core和.Net Standard直观理解
  • .NET CORE使用Redis分布式锁续命(续期)问题