JVM Monitor

聊聊Elasticsearch的MonitorService

南楼画角 提交于 2019-12-09 23:00:52
序 本文主要研究一下Elasticsearch的MonitorService MonitorService elasticsearch-7.0.1/server/src/main/java/org/elasticsearch/monitor/MonitorService.java public class MonitorService extends AbstractLifecycleComponent { private final JvmGcMonitorService jvmGcMonitorService; private final OsService osService; private final ProcessService processService; private final JvmService jvmService; private final FsService fsService; public MonitorService(Settings settings, NodeEnvironment nodeEnvironment, ThreadPool threadPool, ClusterInfoService clusterInfoService) throws IOException { this.jvmGcMonitorService = new

《深入理解Java虚拟机》读书笔记

岁酱吖の 提交于 2019-11-27 14:40:01
《深入理解Java虚拟机》读书笔记 堆分配参数: -XX:+PrintGC 使用该参数,虚拟机启动后,只要遇到GC就会打印日志; -XX:+UseSerialGC 配置串行回收器; -XX:+PrintGCDeltails 可以查看详细信息,包括各个区的情况 -Xms:设置Java程序启动时初始堆的大小(主要参数) -Xmx:设置Java程序能获得的最大堆大小(主要参数) 新生代的配置: -Xmn: 可以设置新生代的大小,设置一个比较大的新生代会减少老年代的大小,这个设置对系统性能以及GC行为有很大的影响,新生代大小一般会设置整个堆空间的1/3到1/4左右。 备注:在实际工作中,可以直接将初始的堆大小与最大堆大小设置相等,这样的好处是可以减少程序运行时的垃圾回收次数,从而提高性能。 常见异常: java.lang.OutOfMemoryError.Java heap spacess---heap JVM中如果98%的时间是用于GC且可用的Heap size不足2%的时候将抛出此异常信息。 -Xms -Xmx java.lang.OutOfMemoryError.PermGen space ---no heap -XX:PermSize -XX:MaxPermSize StrackOverflowError Java虚拟机在运行时,调用方法时,都需要创建栈帧