
JVM
文章平均质量分 95
weihubeats
开源框架Tlog贡献者,技术大多都源于生产实践,乐于分享.公众号:小奏技术
展开
-
Docker compose 部署Grafana+Prometheus实现java应用JVM监控
本次我们使用agentgrafanaprometheus进行了JVM相关的监控。可以看出来相对来说还是比较轻量的。如果有grafanaprometheus。应用仅需接入agent即可,并且这个agent相对来说也是比较轻量。如果是一些中间件之类的监控可以使用这种方式来做监控,比如RocketMQ等比较麻烦的是grafana的dashboard有些维护没维护,需要手动去调整一些指标的key。想要完善好看的dashboard面板还是需要慢慢调整,然后报警自己也可以去慢慢添加。原创 2024-06-04 09:47:30 · 975 阅读 · 0 评论 -
Java中9种常见的CMS GC问题分析与解决
1. 写在前面| 本文主要针对 Hotspot VM 中“CMS + ParNew”组合的一些使用场景进行总结。重点通过部分源码对根因进行分析以及对排查方法进行总结,排查过程会省略较多,另外本文专业术语较多,有一定的阅读门槛,如未介绍清楚,还请自行查阅相关材料。| 总字数 2 万左右(不包含代码片段),整体阅读时间约 30min ,文章较长,可以选择你感兴趣的场景进行研究。1.1 引言自 Sun 发布 Java 语言以来,开始使用 GC 技术来进行内存自动管理,避免了手动管理带来的悬挂指针(Dangling转载 2021-03-20 09:31:06 · 1165 阅读 · 0 评论 -
基于mat做简单的堆内存溢出分析
文章目录下载启动mat生成 dump文件加载dump文件下载启动mat首先我们需要下载启动mat下载mat官网下载地址这里更加自己的系统选择合适的压缩包我选择的是Windows(x86),下载之后是个zip包,解压就直接可以使用如果分析的dump文件过大需要调整 在 MemoryAnalyzer.ini配置文件中修改 mat的启动参数修改 xmx的启动堆内存即可生成 dump文件这里我们简单的生成一份dump文件运行如下的程序public static void main(原创 2020-10-30 16:56:50 · 1131 阅读 · 0 评论 -
JVM常用的8种垃圾回收器:主要特点,使用场景及优化建议
垃圾回收算法垃圾回收算法是所有垃圾回收器的基础,不同的垃圾回收器所使用的垃圾回收算法也是不同的,但大致分一下几种:标记-清除算法原理: 将垃圾对象直接标记然后清除缺点: 会产生内存碎片,浪费内存复制算法:原理:将内存划分为两块,只使用一块,待这个内存满了,把里面的对象清除到另一快内存优点: 产生内存碎片缺点: 可用的内存大小缩小为原来的一半,对象存活率高时会频繁进行复制。标记-整理算法原理: 将存活对象标记,然后整理移动到一边,使存活对象内存紧凑,避免出现内存碎片原创 2020-10-24 12:54:28 · 4591 阅读 · 4 评论 -
JVM参数说明以及配置模板
不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM、GC的参数,可以极大的减少由于GC工作,而导致的程序运行中断方面的问题,进而适当的提高Java程序的工作效率。但是调整GC是以个极为复杂的过程,由于各个程序具备不同的特点,如:web和GUI程序就有很大区别(Web可以适当的停顿,但GUI停顿是客户无法接受的),而且由于跑在各个机器上的配置不同(主要cup个数,内存不同...转载 2020-10-22 14:27:20 · 514 阅读 · 0 评论 -
我们来聊聊JVM垃圾回收
我们的对象被分配在哪里首先来看这么一段代码:public class Test { private static Teacher teacher = new Teacher(); public static void main(String[] args) { load(); } public static void load() { ...原创 2020-01-14 23:24:33 · 459 阅读 · 0 评论 -
我们来聊聊JVM类加载机制
1. jvm何时会加载一个类我们先来看这个问题,JVM何时会加载我们的类,那就是类被使用,即有main方法的类一定要先加载,其次就是main方法中的调用其他类也是会被加载到内存中的为了更详细理解这个过程我们来看这段代码的加载过程:public class Zou { public static void main(String[] args) { Student s...原创 2020-01-13 17:02:17 · 348 阅读 · 0 评论 -
JVM内存模型详解(1.7与1.8的区别)
文章目录1.JDK、JRE、JVM关系2.JAVA程序的运行(为什么java可以跨平台)3.JVM运行时数据区1.JDK、JRE、JVM关系从图中就可以很清晰的看清他们之间的关系:JDK>JRE>JVM2.JAVA程序的运行(为什么java可以跨平台)比如我们编写一个HelloWord.java ,他是如何运行的呢因为有JVM,所以我们在不同平台只需要下载对应的JDK即可...原创 2019-03-28 10:11:22 · 23082 阅读 · 0 评论