
JVM
catch that elf
一辈子很短,努力的做好两件事就好;第一件事是热爱生活,好好的去爱身边的人;第二件事是努力学习,在工作中取得不一样的成绩,实现自己的价值,而不是仅仅为了赚钱;
展开
-
JVM-运行时数据区
JVM的位置:jvm通过操作系统来操作使用系统硬件。JVM体系结构在实际运行中 程序计数器和虚拟机栈、本地方法栈是线程独有的,方法区和Heap是线程共享的。如下图:java 虚拟机虚拟机自动管理内存,不容易出现内存泄漏和溢出问题,但是一旦出现问题排查起来比较艰难运行时内存区域Java虚拟机在执行java程序的时候把内存分为若干不同的数据区域,每个区域有各自的用途:方法区、虚拟机栈...原创 2019-03-15 09:31:58 · 327 阅读 · 0 评论 -
JVM调优--jstack 工具
一、介绍jstack是java虚拟机自带的一种堆栈跟踪工具。jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack使用方式只支持以下的这种方式:jstack [-l] pid主要分为两个功能:a. 针对活着的进程做本地的或远程的线程dump;b. 针对core文...转载 2019-03-18 15:29:41 · 549 阅读 · 0 评论 -
JVM调优命令-jhat
jhatJVM Heap Analysis Tool命令是与jmap搭配使用,用来分析jmap生成的dump,jhat内置了一个微型的HTTP/HTML服务器,生成dump的分析结果后,可以在浏览器中查看。在此要注意,一般不会直接在服务器上进行分析,因为jhat是一个耗时并且耗费硬件资源的过程,一般把服务器生成的dump文件复制到本地或其他机器上进行分析。【内存分析】[root@localho...转载 2019-03-18 14:42:46 · 387 阅读 · 0 评论 -
JVM工具jmap
java命令–jmap命令使用jdk安装后会自带一些小工具,jmap命令(Java Memory Map)是其中之一。主要用于打印指定Java进程(或核心文件、远程调试服务器)的共享对象内存映射或堆内存细节。jmap命令可以获得运行中的jvm的堆的快照,从而可以离线分析堆,以检查内存泄漏,检查一些严重影响性能的大对象的创建,检查系统中什么对象最多,各种对象所占内存的大小等等。可以使用jmap生...转载 2019-03-18 14:21:16 · 1073 阅读 · 0 评论 -
常用JVM参数
常用JVM参数-Xms:初始堆大小,默认为物理内存的1/64(<1GB);默认(MinHeapFreeRatio参数可以调整)空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制-Xmx:最大堆大小,默认(MaxHeapFreeRatio参数可以调整)空余堆内存大于70%时,JVM会减少堆直到 -Xms的最小限制-Xmn:新生代的内存空间大小,注意:此处的大小是(eden+ ...转载 2019-03-18 11:25:27 · 789 阅读 · 0 评论 -
JVM-工具 jps jstat jinfo
JPSps主要用来输出JVM中运行的进程状态信息,实际中这是最常用的命令,其他工具基本都是先要使用jps查看出当前有哪些Java进程,获取该Java进程的id后再对该进程进行处理。其可配置参数有:-q 不输出类名、Jar名和传入main方法的参数-m 输出传入main方法的参数-l 输出main类或Jar的全限名-v 输出传入JVM的参数例如[root@zk...原创 2019-03-15 18:06:52 · 419 阅读 · 0 评论 -
JVM-GC日志格式及内存分配策略
理解GC日志阅读gc日志是处理java虚拟机内存的基础技能,它是一些人为确定的规则,没有太多的技术含量。GC日志开头的【GC 和 【full GC 说明垃圾收集停顿的类型,而不是区分新生代老年代的。如果有Full说明这次GC是发生了 stop the world 的。如果是 System.gc();方法触发的收集 那么这里会显示,【FullGC( System).DefNew [Tenur...原创 2019-03-15 15:59:27 · 765 阅读 · 0 评论 -
JVM-垃圾收集器
垃圾收集器收集算法是内存回收的方法论,垃圾收集器是内存回收的具体实现Java虚拟机规范中没有对垃圾收集器做任何规定所以不同厂商不同版本虚拟机的垃圾收集器差别很大。这里讨论jdk1.7的 hotspot虚拟机下图上边是新生代收集器,下边是老年代收集器,连线表示可以搭配使用。serial收集器serial 收集器时最基本、发展历史最悠久的收集器。只能使用一个CPU一个线程去完成垃圾收集工作...原创 2019-03-15 15:41:21 · 344 阅读 · 0 评论 -
JVM-垃圾回收算法
1.8之前版本 java内存模型1.8 版本java内存模型元空间替换永久代是位了规避永久代内存溢出的问题 ,metaSpace 可以动态无限扩容。无限扩容可能会占用过多内存而使得其他区域内存不足所以。实际应用中仍然需要设置上限大小。垃圾回收的对象的确定引用计数:在对象中添加一个引用计数 器,当有地方引用这个对象的时候,计数器+1,当失效的时候,计数器-1.会存在相互引用而导致内存泄...原创 2019-03-15 15:30:41 · 316 阅读 · 0 评论 -
JVM监控工具jconsole
Jconsole,Java Monitoring and Management Console。Jconsole是JDK自带的监控工具,在JDK/bin目录下可以找到。它用于连接正在运行的本地或者远程的JVM,对运行在java应用程序的资源消耗和性能进行监控,并画出大量的图表,提供强大的可视化界面。而且本身占用的服务器内存很小,甚至可以说几乎不消耗。一、介绍JConsole 是一个内置 Ja...转载 2019-03-18 16:56:38 · 571 阅读 · 0 评论