JVM arthas下载工具

工具下载地址

链接:https://pan.baidu.com/s/1qkn9HabhuwTiwbKVQ7BXnA?pwd=v5ww
提取码:v5ww

启动语句

java -jar arthas-boot.jar

输入你的线程,这里是2
在这里插入图片描述

dashboard

在这里插入图片描述

JVM优化

堆的初始大小 最大大小 年轻代的大小 线程栈大小 新生代、伊甸区与Survivor的比例8:1:1 方法区的大小 最大大小 新生代Parnew 百分之68触发fullGC

在这里插入图片描述

内存分配策略

对象优先在 Eden 分配
大多数情况下,对象在新生代 Eden 区分配,当 Eden 区空间不够时,发起 Minor GC。

大对象直接进入老年代
大对象是指需要连续内存空间的对象,典型的大对象是那种很长的字符串以及数组。

经常出现大对象会提前触发垃圾收集以获取足够的连续空间分配给大对象。

-XX:PretenureSizeThreshold​,大于此值的对象直接在老年代分配,避免在 Eden 区和 Survivor 区之间的大量内存复制。

长期存活的对象进入老年代
为对象定义年龄计数器,对象在 Eden 出生并经过 Minor GC 依然存活,将移动到 Survivor 中,年龄就增加 1 岁,增加到一定年龄则移动到老年代中。

-XX:MaxTenuringThreshold​ 用来定义年龄的阈值。

动态对象年龄判定
虚拟机并不是永远地要求对象的年龄必须达到​ MaxTenuringThreshold​ 才能晋升老年代,如果在Survivor​中相同年龄所有对象大小的总和大于 Survivor ​​空间的一半,则年龄大于或等于该年龄的对象可以直接进入老年代,无需等到 MaxTenuringThreshold ​​中要求的年龄。

空间分配担保
在发生​ Minor GC ​​之前,虚拟机先检查老年代最大可用的连续空间是否大于新生代所有对象总空间,如果成立的话,那么Minor GC​可以确认是安全的。

如果不成立虚拟机会查看 HandlePromotionFailure​ 设置值是否允许担保失败,如果允许那么就会继续检查老年代最大可用的连续空间是否大于历次晋升到老年代对象的平均大小,如果大于,将尝试着进行一次 Minor GC​,如果小于或者​ HandlePromotionFailure ​​设置不允许担保失败,那么就要进行一次 Full GC。

Full GC 的触发条件

调用 System.gc()
只是建议虚拟机执行 Full GC,但是虚拟机不一定真正去执行。不建议使用这种方式,而是让虚拟机管理内存。

老年代空间不足
老年代空间不足的常见场景为前文所讲的大对象直接进入老年代、长期存活的对象进入老年代等。

为了避免以上原因引起的 Full GC,应当尽量不要创建过大的对象以及数组。除此之外,可以通过-Xmn虚拟机参数调大新生代的大小,让对象尽量在新生代被回收掉,不进入老年代。还可以通过-XX:MaxTenuringThreshold调大对象进入老年代的年龄,让对象在新生代多存活一段时间。

空间分配担保失败
使用复制算法的 Minor GC 需要老年代的内存空间作担保,如果担保失败会执行一次Full GC。

Concurrent Mode Failure
执行 CMS GC 的过程中同时有对象要放入老年代,而此时老年代空间不足(可能是 GC 过程中浮动垃圾过多导致暂时性的空间不足),便会报​ Concurrent Mode Failure ​​错误,并触发​ Full GC​。

故障排查工具

jps : JDK提供的查看当前Java进程的工具
jstack: JDK提供的线程堆栈分析工具,可以查看或导出Java应用程序中线程堆栈信息
jinfo: JDK 自带的命令,可以用来查看正在运行的 java 应用程序的扩展参数,包括Java System属性和JVM命令行参数;也可以动态的修改正在运行的 JVM 一些参数。当系统崩溃时,jinfo可以从core文件里面知道崩溃的Java应用程序的配置信息。
jmap: 生成Java程序的dump文件,也可以查看堆内对象示例的统计信息、查看 ClassLoader 的信息
jstat: 虚拟机统计信息监视工具,用于监视虚拟机运行状态信息,可以显示本地或远程虚拟机进程中的类加载、内存、垃圾收集、即时编译器等运行时数据。

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

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

相关文章

娱乐类直播平台

娱乐类直播是一种以娱乐为主要内容的直播形式,包括音乐、舞蹈、游戏、搞笑、访谈等。这种直播形式通常由主播在平台上进行表演,吸引观众的关注和互动。 在娱乐类直播中,主播通常会通过展示自己的才艺、技能或者与观众进行互动来吸引关注。一…

vue-cli创建项目运行报错this[kHandle] = new _Hash(algorithm, xofLen);(完美解决)

1:问题出现的原因 出现这个问题是node.js 的版本问题,因为 node.js V17开始版本中发布的是OpenSSL3.0, 而OpenSSL3.0对允许算法和密钥大小增加了严格的限制,可能会对生态系统造成一些影响。故此以前的项目在使用 nodejs V17以上版本后会报错。…

聊天注意事项

聊天成功的核心就是双方都能舒服 有些人不会聊天是缺乏引导性 聊天聊两句话就没了 聊天要把话题引导向对方 从倾诉者变为倾听者 才能不断交流 沟通不是一个人的独角戏 每个人都渴望被理解 要注意倾听别人说的话 不要只顾自己说一大堆,别人都瞌睡了 不要查户口式问…

flask web学习之flask与http(一)

文章目录 一、请求响应循环二、HTTP请求1. 请求报文2. request对象3. 在flask中处理请求3.1 路由匹配3.2 设置监听的http方法3.3 URL处理 三、请求钩子 一、请求响应循环 每一个web应用都包含这种处理方式,请求-响应循环:客户端发出请求,服务…

rvos 3编译与链接

做下面的两个练习需要: 在vmvb上装一个ubuntu会gcc、vi的基本使用 用vi写一个hello.cgcc -o hello.creadelf -h hello.oreadelf -S hello.oobjdump -S hello.o 用vi编辑一个test.cgcc -c test.creadelf -S test.o.text:代码 .data:初始化的全局变量和静态变量…

MYSQL练题笔记-高级查询和连接-连续出现的数字

一、题目相关内容 1)相关的表和题目 2)帮助理解题目的示例,提供返回结果的格式 二、自己初步的理解 其实这一部分的题目很简单,但是没啥思路啊,怎么想都想不通,还是看题解吧,中等题就是中等题…

力扣215. 数组中的第K个最大元素

堆排序 前言 面试中著名的 TopK 排序;常见的解法有冒泡排序、堆排序;更深入的思路可以参考:拜托,面试别再问我TopK了!!!使用了堆排序的算法,关于堆可以参考:堆数据结构的…

Linux 命令chgrp chown chmod

chgrp chown chmod 介绍 chgrp : 修改文件所属用户组 chown : 修改文件拥有者 chmod : 修改文件权限1 chgrp 命令功能: chgrp命令用来改变文件或目录所属的用户组。该命令用来改变指定文件所属的用户组。其中,组名可以是用户组的id,也可以是用户组的组…

openEuler 22.03 升级openssh9.5

yum安装编译依赖的组件 yum install -y rpm-build gcc gcc-c glibc glibc-devel openssl-devel openssl pcre-devel zlib zlib-devel make wget krb5-devel pam-devel libX11-devel libXt-devel initscripts libXt-devel gtk2-devel lrzsz建立编译目录 mkdir -pv /root/rpm…

22 最长回文子串的3中解决方式

问题描述:给你一个字符串s,找到s中最长的回文子串 暴力求解:通过两个循环遍历所有的子串,找到最长的那个子串并进行记录后返回 Boolean isPalindrome(String s,int indexStart,int indexEnd) { if(indexStartindexEnd) { return true; } in…

使用 TypeChain 从智能合约 ABI 生成类型声明

前言 web3 项目中,前端不可缺少地需要调用智能合约的代码,但是智能合约只有合约地址及对应的 ABI 文档,而没有相应的 typescript 类型声明。本文讲述如何使用 typechain 将智能合约的 ABI 文件自动生成类型声明,这样可以在项目中…

分布式ID服务实践

背景 分布式场景下需要一个全局 ID 来标识唯一性,比如在单数据库时通过表唯一主键即可实现唯一 ID,分库分表时就需要全局唯一 ID。 业务对唯一 ID 的要求如下: 全局唯一性 不能出现重复的 ID 号,既然是唯一标识,这…

Ubuntu22.04LTS配置rsync服务

Ubuntu22.04LTS配置rsync服务 近期准备同步一些文件,准备选用rsync,这里记录一下配置过程。 rsync是一个开源的快速备份工具,可以镜像保存整个目录树和文件系统。 rsync使用所谓的“rsync算法”来使本地和远程的文件保持同步。这个算法只传…

Kubernetes(K8s)安全认证-10

安全认证 访问控制概述 Kubernetes作为一个分布式集群的管理工具,保证集群的安全性是其一个重要的任务。所谓的安全性其实就是保证对Kubernetes的各种客户端进行认证和鉴权操作。 客户端 在Kubernetes集群中,客户端通常有两类: User Acco…

线程池,及7大参数,4大拒绝策略详解

线程池,及7大参数,4大拒绝策略详解 1. 前言 1.1 什么是线程池? 线程池是一种利用池化技术思想来实现的线程管理技术,主要是为了复用线程、便利地管理线程和任务、并将线程的创建和任务的执行解耦开来。我们可以创建线程池来复用…

基于模块化的智能变电站电气系统

摘要 本次设计是我们的毕业设计,本次设计的变电站的类型为地区变电站,是为了满足市区生产和生活的要求,根据老师给出的设计资料和要求,结合所学的基础知识和文献资料所做的。通过本设计,对以前所学的知识加强了理解和掌握&#x…

第19章 正则表达式 - C++

第19.1节 介绍 正则表达式库提供表示正则表达式的类,正则表达式是一种用于在字符串中匹配模式的微型语言。下列数种对象上的操作能刻画几乎所有带正则表达式的操作: 目标序列。为模式而搜索到的字符序列。这可以是二个迭代器所指定的范围、空终止字符串…

【4】密评-网络和通信安全测评

0x01 依据 GB/T 39786 -2021《 信息安全技术 信息系统密码应用基本要求》针对等保三级系统要求: 网络和通信层面: a)应采用密码技术对通信实体进行身份鉴别,保证通信实体身份的真实性; b)宜采用密码…

Java实现微信小程序支付前后端

微信小程序支付的前后端实现可以分为以下几个步骤: 微信开放平台注册账号并创建小程序应用。 在小程序后台设置支付相关信息,包括支付证书、支付回调地址等。 在小程序前端页面中调用wx.requestPayment函数,调起微信支付界面。 在小程序后…

GB/T 35379-2017 木门分类和通用技术要求

木门是指主要采用实木、人造板或其他木质复合材料制成的门框和门扇,根据表面材料的不同分为实木门,实木复合门和木质复合门,按照功能的不同分为防火木门、防盗木门、防潮木门、隔声木门等。 GB/T 35379-2017 木门检测项目 测试项目 测试标准…