JVM和GC案例详解

news2024/11/23 16:37:54

接上文JVM环境配置说明:上文博客

一、JVM远程连接设置

1. JMX方式连接(这种方式没有GC监控),设置如下

在这里插入图片描述
在这里插入图片描述
2. 连接成功后可以查看基础配置参数(和服务器配置一致)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2. jstatd方式连接(这种方式没有CPU监控)
  1. 添加jstatd方式连接
    在这里插入图片描述
    在这里插入图片描述
    双击Tomcat,选择GC在这里插入图片描述
  • 由上图分析:

    • Eden满了—>S0或S1
    • GC Time(GC回收,总GC):241ms执行了GC6次
    • 从JVM参数上看是1:2的关系,老年代占比1.333G+年轻代差不多在2048m
  • VisualGC回顾分析:

    • 年轻代eden
      • Java应用在分配Java对象时,这些对象会被分配到年轻代堆空间中去,这个空间大多是小对象并且会被频繁回收
    • s0与s1 生存区
      • Eden区域被填满时,触发minor GC,此时将有效对象移动到s0或s1中去,s0与s1不会同时存放数据
    • 老年代old
      • 年轻代堆空间的长期存活对象会转移到(也许是永久性转移)年老代堆空间
      • 这个堆空间通常比年轻代的堆空间大,并且其空间增长速度较缓
    • 持久代(Permanent Generation)(JDK8之后叫元空间)
      • 存放VM和Java类的元数据(metadata),以及interned字符串和类的静态变量

二、 模拟在压测情况下查看GC状况

1. 执行压测

在这里插入图片描述

在这里插入图片描述

年轻代GC回收频率:35/32=1.09s GC一次

2. 更改tomcat配置为1G
  1. cd /usr/local/tomcat7-8083/bin/
    在这里插入图片描述

  2. 重启tomcat和 j-start-jstatd.sh查看配置
    在这里插入图片描述

  3. 再次压测
    在这里插入图片描述

  4. 查看GC频率
    在这里插入图片描述
    年轻代GC回收频率:2/66=0.030s

  5. GC压测现象
    GC太频繁,不够用了,JC次数太多对性能有影响,小于1肯定是有问题的,频繁垃圾回收太多,占用资源,尽量减少次数,JC回收频繁(可导致内存不足),通过JC回收机制做性能优化

  6. GC的指标
    Minor GC(年轻代垃圾回收)时间不到50ms,执行不频繁,不低于10秒一次
    Full GC(老年代垃圾回收)执行时间不到1s,执行频率不低于10分钟一次

3. 模拟线程死锁
cd /usr/local/web/WebRoot/WEB-INF/classes/
vi config.properties

将最后一行改为Jtest=1,之后重启tomcat,就会模拟线程死锁的情况(开发特意配置,模拟现实环境)

在这里插入图片描述
点击线程Dump查看线程死锁报错,给开发分析原因
线程死锁:导致内存溢出或程序卡死

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2205857.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python可变数据类型和不可变数据类型

先看一段代码。 value1 10 value2 value1 print(value1) print(value2) value1 30 print(value1) print(value2)再看另一段代码。 list1 [1,2,3,4] list2 list1 print(list1) print(list2) list1.append(5) print(list1) print(list2)第一段代码中,value2的值…

深入解析:如何使用LangChain进行RAG处理半结构化数据

深入解析:如何使用LangChain进行RAG处理半结构化数据 引言 在处理半结构化数据如PDF文件时,如何有效提取信息是一个挑战。本文将介绍如何使用LangChain的RAG处理模板处理这样的数据。我们将探讨安装、使用和在项目中集成的完整过程。 主要内容 环境设…

FLBOOK一款强大的电子产品图册制作工具

随着科技的飞速发展,电子产品已经成为我们生活中不可或缺的一部分。为了让消费者更好地了解产品特性、功能及优势,电子产品图册的制作显得尤为重要。今天,我要向大家介绍一款强大的电子产品图册制作工具——FLBOOK。 一、FLBOOK简介 FLBOOK是…

芜湖儿童自闭症寄宿制学校:为孩子打开未来大门

在探索自闭症儿童教育的广阔领域中,寄宿制学校以其独特的教育模式和全面的关怀体系,为自闭症儿童及其家庭带来了新的希望与可能。虽然本文聚焦于芜湖儿童自闭症寄宿制学校的概念,但让我们以广州星贝育园自闭症儿童寄宿制学校为具体实例&#…

登顶!智源BGE首开国产模型Hugging Face月度下载全球第一

BGE(BAAI General Embedding)系列模型是北京智源人工智能研究院研发的开源通用向量模型,该模型专为各类信息检索及大语言模型检索增强应用而打造。 自2023年8月发布首款模型BGE v1,历经数次迭代,BGE已发展为全面支持“…

百度下拉框出词技术解密:72小时出下拉词软件原理分享

如何才能刷下拉词?这个问题一直是企业做流量时最纠结的问题,百度下拉词作为百度搜索体验中的一项智能化功能,极大地方便了用户快速完成搜索,也成为了企业在搜索引擎优化(SEO)策略中的重要流量入口。通过研究…

Python学习-函数

函数 文章目录 函数定义与调用参数传递内存分析返回值参数定义默认值参数个数可变的参数关键字参数 变量的作用域 匿名函数基本语法示例lambda与排序高阶函数map函数reduce函数filter函数 多关键字排序 定义与调用 函数可以嵌套用 先定义后调用 def calc(a,b):cabreturn cre…

【Java SE 题库】递归的魅力之--> 汉诺塔问题

🔥博客主页🔥:【 坊钰_CSDN博客 】 欢迎各位点赞👍评论✍收藏⭐ 目录 1. 题目 2. 分析 2.1 图解 2.2 代码解析 3. 完整代码 3.1 运行截图 4. 小结 1. 题目 汉诺塔问题是一个经典的递归问题,源自一个古老的印度传…

MYSQL MVCC多版本并发控制机制与原理、可重复读/读已提交原理

1,前置知识回顾 1.1,当前读和快照读 根据前面章节可知,mysql在【可重复读】(RR)的事务隔离机制下,同一个事务中的多次读取结果是一样的。而【读已提交】(RC)事务隔离机制&#xff0c…

Spring Integration + MQTT

1. 简介 Spring Integration: Spring Integration是一个开源的Java库,用于构建基于消息的应用程序。它提供了一套丰富的组件和工具,使得开发者可以轻松地开发出可靠、灵活和可扩展的集成解决方案。以下是Spring Integration的一些主要用途&…

剪辑视频怎么学?四大工具助你轻松入门!

无论是制作短视频、记录生活点滴,还是从事专业影视制作,掌握视频剪辑技巧都至关重要。那么,剪辑视频怎么学呢?本文将为大家推荐四款实用的视频剪辑工具,助你轻松入门! 福昕视频剪辑:简单易用&a…

基于SpringBoot+Vue的医院预约挂号管理系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…

使用Postman搞定各种接口token实战!

现在许多项目都使用jwt来实现用户登录和数据权限,校验过用户的用户名和密码后,会向用户响应一段经过加密的token,在这段token中可能储存了数据权限等,在后期的访问中,需要携带这段token,后台解析这段token才…

1.1 前端技术的发展

大家好!今天,我将与大家分享一个非常有趣的话题——前端技术的发展。在这个数字化时代,前端技术已经成为我们日常生活中不可或缺的一部分。我们的学习目标是了解前端技术的发展,并探讨使用框架开发项目的优势。 首先,…

基于大模型LLama2+Langchain构建知识库问答系统

1 背景 知识库需求在各行各业中普遍存在,例如制造业中历史故障知识库、游戏社区平台的内容知识库、电商的商品推荐知识库和医疗健康领域的挂号推荐知识库系统等。传统知识库搜索系统基于关键字匹配,缺少对用户问题理解和答案二次处理能力。为保证推荐系…

Go-知识泛型

Go-知识泛型 1. 认识泛型1.1 不使用泛型1.2 使用泛型 2. 泛型的特点2.1 函数泛化2.2 类型泛化 3. 类型约束3.1 类型集合3.2 interface 类型集合3.2.1 内置interface类型集合3.2.2 自定义interface类型集合3.2.2.1 任意类型元素3.2.2.2 近似类型元素3.2.2.3 联合类型元素 3.2.3 …

腾讯云直播录制相关

直播录制的原理是什么? 对于一条直播流,一旦开启录制,音视频数据就会被旁路到录制系统。主播的手机推上来的每一帧数据,都会被录制系统追加写入到录制文件中。 一旦直播流中断,接入层会立刻通知录制服务器将正在写入的…

for深入学习作业

作业&#xff1a; 写一个程序判断1-100中9的个数 代码: #include<stdio.h> int main() {int i 9,sum0;for (i 9; i < 100; i) {if ((i % 10 9) || (i / 10 9)) {sum;}}printf("%d", sum);return 0; } //9 19 29 39 49 59 69 79 89 99 //91 92 93 94 …

LVGL设计汽车仪表盘(开源!!)

驾驶界面图 有图无真相&#xff0c;下面视频展示&#xff1a; 汽车仪表盘展示 资源已绑定&#xff0c;自行下载哦 关注我&#xff0c;后面出LVGL移植教程&#xff01;

在线拍卖|基于springBoot的在线拍卖系统设计与实现(附项目源码+论文+数据库)

私信或留言即免费送开题报告和任务书&#xff08;可指定任意题目&#xff09; 摘要 在线拍卖系统&#xff0c;主要的模块包括管理员&#xff1b;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单管理、留言板管理、系统管理&#xff0c;用户&am…