核心内容摘要
《哥布林洞窟》:双男主羁绊,在黑暗中绽放的炽热光芒
我们对这个jar包要监控什么为什么jvm需要调优怎么监控指标什么时候需要去进行调优呢.这里先做一个第一版的
总结我们知道在java、中是不用去进行内存管理的。
内存管理由GC做了我们需要做的就是去了解GC这里先简单的过一遍这个jvm会做到事情
判断对象什么时候可以被回收、使用引用计数法或者可达性分析
在jvm中使用了常见的垃圾回收器选择对应的垃圾回收算法来处理这些被回收的对象。
这里花费一些篇幅讲垃圾回收算法
标记清除算法
复制算法
标记整理算法
分代收集算法垃圾回收器
适用于个人电脑的串行垃圾收器使用标记整理算法单线程垃圾回收所有的都stw
并行垃圾回收器jdk8默认使用parallel new作用于新生代。
复制算法parallel old作用于老年代标记整理算法java中多线程工作但是垃圾回收的时候要stw
cms垃圾回收器垃圾回收的时候不会stw
G1垃圾回收器对于这些垃圾回收器应该如何选择使用。
一般来说吞吐量优先的垃圾回收器-XX:UseParallelGC -XX:UseParallelOldGC即常规的PS/PO响应时间优先的垃圾回收器CMS、G1为什么需要调优呢两个问题
gc出现问题了heap老年代内存fullgc次数频繁gc停顿长出现oom或者outofmemoryerror问题。
就是这个指标等监控的时候出现问题了。
其他指标出现了问题想要提高吞吐量或者低延迟的指标硬件的内存cpu指标过高有本地缓存或者占用大量的空间就是不是jvm内部的指标出现问题了而是对于项目的其他因素产生了不好的影响。
如何监控到jvm的状态或者异常