export命令
export CLASSPATH=.:CLASSPATH:xxx-1.0.0-SNAPSHOT.jar
jstack -l pid
解析:
daemon后台进程
prio=10 优先级是10
tid在内存中的物理地址
nid线程id 16进制
WAITING 线程状态,可以是RUNNING ...
先简单介绍下常见dump 内存的两种方式
XX:+HeapDumpOnOutOfMemoryError
jmap -dump:format=b,file=testdump.bin <pid>
jmap的常用命令:
jmap -histo:live pid 查看内存里面实例的内容以及数量
jmap heap pid 查看内存中每个代内存的占有率
常用名词解释:
Shallow size就是对象本身占用内存的大小,不包含对其他对象的引用,也就是对象头加成员变量(不是成员变量的值)的总和。
Retained size是该对象自己的shallow size,加上从该对象能直接或间接访问到对象的shallow size之和。
1.模拟堆内存溢出。
code:
import java.util.ArrayList; import java.util.List; public class TestOOM { public static void main(String[] args) throws InterruptedException { List list=new ArrayList(); OOM oom=new OOM(); Thread.sleep(20*1000); for(int i=0;i<15;i++){ // System.out.println(i); list.add(new OOM()); Thread.sleep(2*1000); } } } class OOM{ byte[] bytes=new byte[1024*1024*8]; }
2.模拟常量池溢出。
code:
import java.util.ArrayList; import java.util.List; public class OOM2 { public static void main(String[] args) throws InterruptedException { List list=new ArrayList(); Thread.sleep(10*1000); for(int i=0;i<10000000;i++){ list.add(String.valueOf(i).intern()); } } }
java -Xmx1020m -Xms1020m -XX:PermSize=50m -XX:MaxPermSize=50m -XX:+HeapDumpOnOutOfMemoryError OOM2
可以发现跑了一会,会出现OOM。
此时dump文件已经生成了就可以用MAT工具打开了。
mat分析详细截图下次再补充下吧。
参考一下文档:
http://www.blogjava.net/rosen/archive/2010/05/21/321575.html
http://www.blogjava.net/rosen/archive/2010/06/13/323522.html
相关推荐
JVM监控管理及故障诊断工具(常用命令),文中的命令常用于监视JVM虚拟机性能及资源消耗情况。
官网下载下来的 新手现在想从官网...需要注意的是,JDK8与JDK1.8实际上是同一个东西,这是由于自从JDK1.5/JDK5命名方式改变后遗留的新旧命令方式问题。尽管现在已经有更高版本的JDK,但JDK8仍然是主流版本被广泛使用。
JDK 9中核心库的新内容: 1、进程API更新:新增ProcessHandle类,该类提供进程的本地进程ID、参数、命令、启动时间、累计CPU时间、用户、父进程和子进程。这个类还可以监控进程的活力和破坏进程。ProcessHandle。...
Java VisualVM是一个多线程的监控分析工具,VisualVM 是一款免费的\集成了多个 JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,...它集成了多个JDK命令工具的一个可视化工具,它主要用来监控JVM的运行情况,
2.被监控端读取命令(命令格式为ordername:port)ordername为命令名字,port为主控端打开的TCP端口。 3.接到主控端连接后,被监控端就对当前用户的桌面采用屏幕截取,然后发送给主控端。依被监控端设计的不同,...
将视频整合成为思维导图...内容包括:(1)基于JDK命令后工具的监控(2)基于Btrace的监控调试(3)nginx性能监控和调优 (4)java代码层优化(5)JVM层GC调优(6)基于JVisualVM的可视化监控(7)tomcat性能监控和调优
完善jdk路径的自动查找和配置(如果不会设置JDK,只要安装jdk的安装版后,通常都能自动查找到)。 版本:2.3 alpha测试版 发布时间:2013.04.09 增加对.samli、.xml的文件修改的监视功能,以便在使用了外部编辑器...
支持远程执行JDK自带工具命令,包含但不限于jps、jstat、jstack、jinfo、jmap、jcmd等 提供客户端交互工具,支持跨进程attach和远程连接功能 支持三种服务模式(可同时开启多个服务): jvmm服务:独有RPC协议,需...
全部代码出自电子工业出版社夏先波的《Java JDK实例宝典》一书,本书以J2SE 5.0为开发环境,选取Java应用的典型实例,循序渐进地介绍了Java语言的各种开发方法和技巧,实例代码注释详细规范,思路清晰。 第1章 ...
物联网流量监控器 下面是IoT Traffic Monitor应用程序的架构图。 阅读的文章 交通监控器应用程序使用以下工具和技术。 JDK-1.8 Maven-3.3.9 动物园管理员-3.4.8 ... 使用以下命令来构建所有项目。 mvn package
1.此jar包是根据rocketmq-console-ng工程maven编译而来 ...3.启动命令(需要有jdk环境): nohup java -jar rocketmq-console-ng-1.0.0-gbk.jar --server.port=8888 --rocketmq.config.namesrvAddr=ip1:9876;ip2:9876 &
使用ProcessBuilder执行本地命令; 泛型编程; 监控和管理虚拟机;新的线程执行架构; 线程锁; 线程条件; 线程同步装置:semaphore countdownlatch cyclicbarrier exchanger; 17 java与xml 用dom处理xml文档; 用sax处理...
使用JVM命令和一查看这个JVM参数,帮助我们排查、解决问题。 1 JDK的命令行工具 JDK的命令行工具大多数是对JDK/lib/tools.jar类库的一层薄包装而已,它们的主要功能代码是在tools类库中实现的。Linux下的这些工具有...
在生产系统运维过程中,每天需要通过各种命令查看系统参数,以确认系统是否正常运行,而查看并记录每台服务器相应的参数,是一件繁杂,耗时,并需要有对系统运维有充分经验的人来操作,尽管如此,对于紧急系统故障,...
jdk1.8安装 sdk: 下载sdk:http://tools.android-studio.org/index.phph/sdk 配置环境变量:ANDROID_HOME=sdkpath path添加:%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools; adb命令:adb是Android调试桥 ...
首先保证系统中已经安装了jdk,最好是jdk1.5以上。 第一种启动方法,切换到jenkins.war存放的目录,输入如下命令: $ java -jar jenkins.war 然后在浏览器中(推荐用火狐)输入http://localhost:8080,localhost可以...
首先保证系统中已经安装了jdk,最好是jdk1.5以上。 第一种启动方法,切换到jenkins.war存放的目录,输入如下命令: $ java -jar jenkins.war 然后在浏览器中(推荐用火狐)输入http://localhost:8080,localhost可以...
首先保证系统中已经安装了jdk,最好是jdk1.5以上。 第一种启动方法,切换到jenkins.war存放的目录,输入如下命令: $ java -jar jenkins.war 然后在浏览器中(推荐用火狐)输入http://localhost:8080,localhost可以...
全自动收款系统/转卡系统源码/银行卡自动收款/卡转卡代收系统/卡转卡支付系统/卡转卡系统源码/转卡系统监控/转卡收款系统源码 软件架构 ●使用vue、element-ui、spring-boot技术 ●依赖jdk(v1.8)、tomcat(v8.5) 、...
- 第4章 虚拟机性能监控、故障处理工具- 4.2 基础故障处理工具JDK提供jhat(JVM Heap Analysis Tool)命令与jmap搭配使用,来