![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
文章平均质量分 96
qq_39093474
这个作者很懒,什么都没留下…
展开
-
JVM如何调优
方式一:查看日志方式2:强制触发Full GC。翻译 2024-06-02 16:03:59 · 26 阅读 · 0 评论 -
Tomcat8性能优化
AJPv13协议是面向包的。WEB服务器和Servlet容器通过TCP连接来交互;为了节省SOCKET创建的昂贵代价,WEB服务器会尝试维护一个永久TCP连接到servlet容器,并且在多个请求和响应周期过程会重用连接。我们一般是使用Nginx+Tomcat的架构,所以用不着AJP协议,把AJP连接器禁用。修改conf下的server.xml文件,将AJP服务禁用掉即可。-- 禁用AJP连接 -->原创 2023-04-16 18:18:00 · 1047 阅读 · 0 评论 -
实践篇:线上服务的FGC问题排查例析
线上服务的GC问题,是Java程序非常典型的一类问题,非常考验工程师排查问题的能力。同时,几乎是面试必考题,但是能真正答好此题的人并不多,要么原理没吃透,要么缺乏实战经验。过去半年时间里,我们的广告系统出现了多次和GC相关的线上问题,有Full GC过于频繁的,有Young GCGC过程中的程序卡顿,进一步导致服务超时从而影响到广告收入。这篇文章,我将以一个FGC频繁的线上案例作为引子,详细介绍下GC的排查过程,另外会结合GC的运行原理给出一份实践指南,希望对你有所帮助。内容分成以下3从一次FGC。翻译 2022-09-14 23:49:34 · 154 阅读 · 0 评论 -
实践篇:线上服务的YGC问题排查例析
在高并发下,Java程序的GC问题属于很典型的一类问题,带来的影响往往会被进一步放大。不管是 GC频率过快还是 GC耗时太长,由于GC期间都存在问题,因此很容易导致服务超时,引发性能问题。我们团队负责的广告系统承接了比较大的C端流量,平峰期间的请求量基本达到了上千QPS,过去也遇到了很多次GC相关的线上问题。之前有篇文章介绍了一个Full GC过于频繁的案例,并且针对JVM的堆内存结构和GC原理进行了系统性的总结。这篇文章,再分享一个更棘手的Young GC耗时过长的线上案例,同时会整理下YGC。翻译 2022-09-13 23:34:07 · 328 阅读 · 0 评论 -
谈谈你对G1垃圾收集器有哪些了解?
G1垃圾收集器主要用于多处理器、大内存分代、增量、并行(大多时候可以并发)、、标记整理。分代:跟其他垃圾收集器一样,G1把堆分成了年轻代和老年代,垃圾收集主要在年轻代,并且年轻代回收效率最高。偶尔也会在老年代进行回收。增量:为了让垃圾收集时STW时间更短,G1采用增量和分步进行回收。G1通过对应用之前的行为和停顿时间进行分析构建出可预测停顿时间模型,并且利用这个信息来预测停顿时间内的垃圾收集情况。G1会首先回收那些收集效率高的内存区域(这些区别大部分空间是可回收垃圾,这也是为啥叫G1的原因)。翻译 2022-09-12 19:16:37 · 113 阅读 · 0 评论 -
JVM垃圾回收18问
以下的回答来自R大。因为没足够开发资源,偷懒了。就这么简单。没有任何技术上的问题。大公司都自己内部做了优化。所以最初怎么会偷这个懒的呢?多灾多难的CMS GC经历了多次动荡。它最初是作为Sun Labs的Exact VM的低延迟GC而设计实现的。但Exact VM在与HotSpot VM争抢Sun的正牌JVM的内部斗争中失利,CMS GC后来就作为Exact VM的技术遗产被移植到了HotSpot VM上。就在这个移植还在进行中的时候,Sun已经开始略显疲态;到CMS GC完全移植到。翻译 2022-09-12 13:12:06 · 583 阅读 · 0 评论 -
JVM调优之JVM自带性能调优工具
前言JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat、hprof等小巧的工具,每一种工具都有其自身的特点,用户可以根据你需要检测的应用或者程序片段的状况,适当的选择相应的工具进行检测。接下来的两个专题分别会讲VisualVM的具体应用。现实企业级Java开发中,有时候我们会碰到下面这些问题:OutOfMemoryError,内存不足内存泄露线程死锁锁争用(Lock Contention)翻译 2022-09-01 16:41:58 · 1405 阅读 · 0 评论 -
JVM性能调优之GC日志分析
1.为什么需要GC日志Java虚拟机GC日志是用于定位问题重要的日志信息,频繁的GC可能导致应用吞吐量下降,响应时间增加,甚至导致服务不可用。所以需要我们对GC日志进行分析并优化。2. 如何开启GC日志我们可以在JVM中设置参数-XX:+PrintGC或者-verbose:gc,默认GC日志是关闭的,但是如果想输出GC详细的日志,可以增加其他的辅助参数。可以根据自己的需求增加。注意:GC的日志是以替换的方式(>)写入的,而不是追加(>>),如果下次写入到同一个文件中的话,以前翻译 2022-09-01 16:41:41 · 2062 阅读 · 0 评论 -
JVM之垃圾回收
JVM之垃圾回收算法1. JVM内存区域二级目录三级目录1. JVM内存区域要搞懂垃圾回收机制,我们首先要知道垃圾回收注意回收的是那些数据。这些数据在那一块区域。我们一起来看下JVM的内存区域。二级目录三级目录......翻译 2022-09-01 16:41:15 · 172 阅读 · 0 评论 -
深入理解Java类加载器(ClassLoader)
ClassLoader1.什么是类的加载(类初始化)2.类的生命周期2.1 加载2.类的生命周期2.类的生命周期2.类的生命周期2.类的生命周期1.什么是类的加载(类初始化)JVM重要的一个领域,类加载当程序主动使用某个类时,如果该类还没被加载到内存中,则JVM就会通过加载,连接,初始化三个步骤来对类进行初始化,如果没有意外,JVM将会连续完成三个步骤,所以有时也把这个三个步骤称为类的初始化或类加载。而类加载必然涉及类加载器,下面我们先了解一下类的加载类的加载(类初始化):1.在java代码中翻译 2022-09-01 16:37:52 · 956 阅读 · 0 评论 -
Java类型信息(Class对象)与反射机制详解
Class对象和反射机制1. 深入理解Class对象1.1 RRTI的概念以及Class对象作用1.2 Class对象的加载及其获取方式1.2.12. 理解反射技术1. 深入理解Class对象1.1 RRTI的概念以及Class对象作用认识Class对象之前,先来了解一个概念,RRTI(Run-Time Type identification)运行时类型识别。对于这个词一直是 C++ 中的概念,至于Java中出现RRTI的说法则是源于《Thinking in Java》一书,其作用是在运行时识别一个对翻译 2022-09-01 16:37:23 · 264 阅读 · 0 评论