黑马JVM总结(二十)

(1)GC_调优老年代

CMS是低响应时间的,并发的一个垃圾回收器 ,有这样一个缺点,因为在垃圾回收的同时,其他的用户线程也在运行,就会产生新的垃圾这个新的垃圾称为浮动垃圾,如果浮动垃圾产生了又导致内存不足问题就大了就会造成CMSD并发失败,CMS的垃圾回收器就不能正常工作了,就会退化为串行SerialOld的老年代垃圾回收器,效率就低了

先不要尝试老年代调优,可能没有发生Full GC,即使发生了Full GC也要尝试先调试新生代大小,幸存区大小啊,幸存区的晋升阈值啊,容量等等等这些手段用了,还是经常发生Full GC再来看看老年代的调优

当老年代发生Full GC时我们观察老年代是由于多大的内存导致了Full GC的发生,可以在原有Full GC时内存的基础上调大四分之一到三分之一

下面的那个参数:控制老年代内存达到总内存多少的时候触发CMS垃圾回收,值越低触发垃圾回收的时机越早,一般设置为75-80%之间

(2)GC调优_案例1

案例1程序运行期间GC非常的频繁尤其是Minar GC gc特别频繁,说明控件紧张,如果是新生代空间紧张当业务的高峰期来了,大量的对象被创建,很快 新生代内存很快被占满了,造成幸存空间紧张了导致晋升阈值降低,生命周期很短的对象也会晋升到老年代去,这样情况进一步导致老年代存放很多大量生命周期很短的对象,容易触发老年代的Full GC

如果是新生代的内存设置小了,  内存优化从新生代开始,增大新生代的内存,增大了幸存区的空间以及晋升阈值这样尽可能把生命周期很短的对象留在新生代,不要晋升到老年代,就解决老年代的Full 的发生

(3)GC调优_案例2

第二个案例是采用的是CMS但是当发生了Full GC 暂停时间特别长,我们可以去查看GC日志,查看那个阶段耗费的时间较长,通过查看GC日志呢可以把每一阶段的耗费时间在GC日志了里找到,

可以看待重新标记阶段占用大量的时间

我们知道CMS的初始标记跟并发标记时间还是很快的,比较慢的是重新标记那一块,重新标记的时候需要扫描整个堆内存,不仅扫描老年代也要扫描新生代,如果高峰期的时候,新生代的对象比较多,那么扫描时间就会变得非常的多 ,那么在重新标记之前,把新生的对象先做一次垃圾回收,减少新生代对象的数量这样就可以减少重新标记的时间啊

需要设置下面的这个参数在重新标记之前对新生代做一次垃圾的清理,减少重新标记的时间

(4)GC调优_案例3

案例三也是采用CMS,但是它是在老年代相当充裕的情况下发生了Full GC ,CMS呢可能是由于空间不足导致并发失败或者空间碎片比较多都会产生Full GC,但是通过日志并没有发现并发失败或者碎片过多导致的错误提示说明了老年代的空间是充裕的,不是由于老年代的空间不足导致的Full 

GC,发现jdk是1.7,1.7的采用的是永久代作为方法区的实现,永久代的空间不足也会导致Full GC

1.8采用元空间,元空间就不是由java这边来控制了元空间采用操作系统的元空间,空间的容量是比较充裕的不会发生元空间的空间不足问题 

1.7呢如果元空间设置小了,就会触发整个堆的一次Full GC,这样就定位了是由于元空间的不足导致的Full GC,所以就可以增大元空间的初始值和最大值,保证Full GC的发生

 

 

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

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

相关文章

基于Xml方式Bean的配置-命名空间种类

Spring的标签 Spring的xml标签大体上分为两类&#xff0c;一种是默认标签&#xff0c;一种是自定义标签 默认标签&#xff1a;就是不用额外导入其它命名空间约束的标签&#xff0c;例如<bean>标签 标签作用 <beans> 一般作为xml配置根标签&#xff0c;其他标签都是…

网络防御--防火墙

拓扑 Cloud 1 作为电脑与ENSP的桥梁 防火墙配置 登录防火墙 配置IP地址及安全区域 添加地址对象 配置策略 1、内网可以访问服务器 结果 2、内网可以访问公网 结果 配置NAT策略 结果

uniapp中vue3使用uni.createSelectorQuery().in(this)报错

因为VUE3中使用setup没有this作用域&#xff0c;所以报错 解决办法&#xff1a;使用getCurrentInstance()方法获取组件实例 import { getCurrentInstance } from vue;const instance getCurrentInstance(); // 获取组件实例 const DOMArr uni.createSelectorQuery().in(ins…

在Idea中调试本地Docker

报错&#xff1a; Error running myApp: Unable to open debugger port (localhost:5005): java.net.SocketException "Connection reset" 原因&#xff1a; Docker配置里边没有配置环境变量JAVA_TOOL_OPTIONS. 解决&#xff1a; 在Docker下加入运行时的环境变量JAVA…

如何使用固态硬盘+硬盘盒子+U盘创造移动双系统

本文背景 这学期上了一节鸟水课《大数据实践》&#xff0c;老师要求扩展硬盘盒&#xff0c;以部署大数据工具进行 机器挖掘等大数据领域工作 参考视频链接&#xff1a;无需启动盘&#xff0c;用虚拟机将ubuntu安装到移动硬盘上_哔哩哔哩_bilibili 项目使用设备 1.绿联&#…

Linux 查看权限控制

1、认知权限信息 通过ls -l 可以以列表形式查看内容&#xff0c;并显示权限细节 序号1&#xff0c;表示文件、文件夹的权限控制信息 序号2&#xff0c;表示文件、文件夹所属用户 序号3&#xff0c;表示文件、文件夹所属用户组 2、权限细节 权限细节总共分为10个槽位 举例&…

NodeJs——npm

文章目录 写在前面一、dependencies、devDependencies和peerDependencies区别&#xff1a;二、需要牢记的npm命令2.1 npm2.2 npm config list2.3 npm配置镜像源 三、npm install 的原理四、package-lock.json的作用五、npm run 的原理六、npx6.1 npx是什么6.2 npx的优势6.3 npm…

安防视频/视频汇聚平台EasyCVR使用onvif探测添加设备通道详细步骤来啦!

视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同&#xff0c;支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。音视频流媒体视频平台EasyCVR拓展性强&#xff0c;视频能力丰富&#xff0c;具体可实现视频监控直播、视频轮播、视频录像、…

Mysql002:(库和表)操作SQL语句

目录&#xff1a; 》SQL通用规则说明 SQL分类&#xff1a; 》DDL&#xff08;数据定义&#xff1a;用于操作数据库、表、字段&#xff09; 》DML&#xff08;数据编辑&#xff1a;用于对表中的数据进行增删改&#xff09; 》DQL&#xff08;数据查询&#xff1a;用于对表中的数…

idea更改java项目名

做了一个普通的java项目&#xff08;使用socket进行网络通信的练手项目&#xff09;&#xff0c;需要更改项目名&#xff0c;更改过程记录在这里。 修改项目名可能会出现很多错误&#xff0c;建议先备份当前项目 1.在idea里&#xff0c;右键项目名——》选择Refactor——》选择…

Nginx 设置禁用 OPTIONS 请求

1、修改 nginx 配置 在 nginx.conf 配置文件中&#xff0c;增加如下内容&#xff1a; if ($request_method ~* OPTIONS) {return 403; }效果如下&#xff1a; 2、重启 nginx 服务 systemctl restart nginx或者 service nginx restart3、功能验证 使用如下命令&#xff…

基于最近电平逼近的开环MMC逆变器MATLAB仿真模型

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; 模型介绍&#xff1a; MATLAB21b版本 DC:12kV&#xff0c;N&#xff1d;12&#xff0c; 采用最近电平逼近调制&#xff0c;采用基于排序的均压方法&#xff0c;冒泡排序&#xff0b;桥臂电流方向判断。 连接…

STL-函数对象、谓词、常用算法

函数对象 函数对象概念 重载函数调用操作符的类&#xff0c;其对象常称为函数对象 函数对象使用重载的()时&#xff0c;行为类似函数调用&#xff0c;也叫仿函数 本质&#xff1a; 函数对象&#xff08;仿函数&#xff09;是一个类&#xff0c;不是一个函数 函数对象使用…

git 推送出现fatal: The remote end hung up unexpectedly解决方案

在使用git更新或提交项目时候出现 "fatal: The remote end hung up unexpectedly " 的报错&#xff1b; 报错的原因原因是推送的文件太大。 下面给出解决方法 方法一&#xff1a; 修改提交缓存大小为500M&#xff0c;或者更大的数字 git config --global http.po…

企业申报“专精特新”,对知识产权有哪些要求?

深科信从深圳市中小企业服务局发布的公开数据中了解到&#xff0c;2022年深圳市专精特新中小企业申报8000余家&#xff0c;通过4800余家。2023年深圳市专精特新企业认定火热申报中&#xff0c;10月15日截止。 成为“专精特新”企业有什么好处? 1.国家级资质强力背书&#xff…

Docker搭建DNS服务器--nouse

前言 DNS服务器是(Domain Name System或者Domain Name Service)域名系统或者域名服务,域名系统为Internet上的主机分配域名地址和IP地址。 安装 2.1 实验环境 IP 系统版本 角色 192.168.40.121 Ubuntu 22.10 DNS服务器 192.168.40.122 Ubuntu 22.10 测试机器 2.2 …

尚硅谷wepack课程学习笔记

为什么需要使用打包工具&#xff1f; 开发时使用的框架、es6 语法 、less 等浏览器无法识别。 需要经过编译成浏览器能识别的css、js才可以运行。 打包工具可以帮我们编译&#xff0c;号可以做代码压缩、兼容处理、性能优化。 常见的打包工具有什么&#xff1f; vite、webpac…

服务注册发现_搭建单机Eureka注册中心

创建cloud-eureka-server7001模块 pom添加依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation&quo…

Nginx 关闭/屏蔽 PUT、DELETE、OPTIONS 请求

1、修改 nginx 配置 在 nginx 配置文件中&#xff0c;增加如下配置内容&#xff1a; if ($request_method !~* GET|POST|HEAD) {return 403; }修改效果如下&#xff1a; 2、重启 nginx 服务 systemctl restart nginx或者 service nginx restart3、功能验证 使用如下方式…

基于MUSIC算法的二维超声波成像matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1、基本原理 4.2、数学公式 4.3、实现过程 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ..........................................…