jvm
kusedexingfu
这个作者很懒,什么都没留下…
展开
-
MAT内存分析工具介绍
生成了hprof文件后,然后就是使用Memory Analyzer。 官网下载地址:www.eclipse.org/mat/downloa…,因为捐赠什么的,不建议。我这找到了一个比较靠谱的版本,csdn下载下载好后启动我们的MemoryAnalyzer.exe。File --> Open Heap Dump打开我们的my.hprof文件如图:先简单介绍下Memory Analyzer的信息。2.1.1、红色框1: OverView大概信息Size 内存大小 C...转载 2020-09-01 17:40:27 · 1290 阅读 · 0 评论 -
检测java死锁的几种方式
死锁检测代码:1.通过jConsole检测死锁通过jConsole连接上进程后,点击线程,会看到检测死锁按钮。死锁界面会显示只有锁的线程,还有持有锁的位置2.通过jvisualvm检测死锁点击线程Dump后,会有死锁线程的提示。也可以将线程Dump信息复制出来,通过一些第三方工具进行分析,比如:fastthread3.通过arthas检测通过命令:thread -b4.通过jdk的工具:jstack命令stack...原创 2020-09-01 17:26:43 · 2323 阅读 · 0 评论 -
jvm垃圾回收总结
首先,程序计数器、虚拟机栈、本地方法栈3个区域随线程而生,随线程而灭,即方法结束或者线程结束时,内存就跟着收集了,所以这几个区域不需要考虑不需要过多考虑回收的问题。而java堆和方法则不一样,我们只有在程序处于运行期间时才能知道会创建哪些对象,这部分的内存分配和回收都是动态的,而垃圾收集器所关注的也是这部分内存。一.回收方法区方法区主要用于存储已被虚拟机加载的类信息、常量、静态变量、即时编...原创 2019-01-22 22:42:12 · 172 阅读 · 0 评论 -
几种GC专用名词解释
Full GC:年轻代和老年代一块回收YGC:年轻代GCMinor GC:年轻代GCMajor GC:老年代GC原创 2020-06-06 17:39:39 · 902 阅读 · 0 评论 -
java类加载的过程
在大学的时候,课堂上学过,java类加载的过程是:加载、链接、初始化。因为当时只是为了应付考试,就这样背的,并不了解具体的过程,也没有深入的考察过。下面是读书或者是博客里了解到的,总结下。加载加载,是指查找字节流,并且据此创建类的过程。具体完成以下3件事情:1.通过一个全限定名来获取定义此类的二进制字节流(可以是class文件,网络,zip包,jsp等等途径)2.将这个字...原创 2020-05-03 23:17:05 · 168 阅读 · 0 评论 -
日志中不打印异常堆栈
某天线上出现问题,应该是代码出现了异常,查看线上日志,却只有java.lang.NullPointerException,没有异常堆栈信息,无法定位异常的位置。只能在本地调试查找异常位置,但是在本地调试过程中却可以打印异常堆栈的。后来继续查找之前的日志,之前的某段时间这个地方是存在异常堆栈信息的。经过网上查找发现,可以设置JVM参数,在启动进程的时候配置:JVM启动参数加上-XX:-Omi...原创 2019-01-24 16:36:29 · 3236 阅读 · 0 评论 -
服务器CPU占用100%的问题排查
1.top 命令找到占用cpu高的进程id(pid)2.top -Hp pid 找到占用cpu高的线程id(tid)3.printf "0x%x\n" tid 将线程id转为16进制4.jstack18571| vim +/16进制tid - 打印堆栈信息然而线上环境分秒必争,这一系列操作后,可能就定位不到了。脚本:#!/bin/bashif [ $# -e...原创 2020-01-07 23:14:15 · 942 阅读 · 0 评论 -
JVM的GC 参数为什么要这么命名:xms、xss、xmn和xmn?
内容装载自知乎:https://www.zhihu.com/question/59957834/answer/170775050先说VM选项, 三种: - : 标准VM选项,VM规范的选项 -X: 非标准VM选项,不保证所有VM支持 -XX: 高级选项,高级特性,但属于不稳定的选项 参见Java HotSpot VM Options再说这几个参数,其语义分别...转载 2019-12-28 14:22:55 · 1881 阅读 · 0 评论 -
JDK监控和故障处理工具
jps(JVM Process Status Tool)虚拟机进程状况工具列出正在运行的虚拟机进程,并显示虚拟机主类名称,以及这些进程的本地虚拟机唯一ID(LVMID,Local Virtual Machine Identifier),对于本地虚拟机进程来说,LVMID与操作系统的进程ID(PID)是一致的。选项参数: 选项 作用 ...原创 2019-12-05 00:19:08 · 13007 阅读 · 0 评论