4. jmap
这个是用来查看jvm当前的heap dump的。可以看出当前jvm中各种对象的数量,所占空间等等。
尤其值得一提的是这个命令可以到处一份binary heap dump的bin文件,这个文件能够直接用
Eclipse Memory Anayliser来分析,并找出潜在的内存泄漏的地方。
描述 :输出给定 java 进程所有的内存使用信息。
使用:
jmap [ option ] pid
jmap [ option ] executable core
jmap [ option ] [server-id@]remote-hostname-or-IP
参数如下:
-heap:打印jvm heap的情况
-histo:打印jvm heap的直方图。其输出信息包括类名,对象数量,对象占用大小。
-histo:live :同上,但是只答应存活对象的情况
-permstat:打印permanent generation heap情况
<no option>
没有可选项时,会输出所有共享的对象映射。
开始地址,映射大小,全路径。
直接 jmap pid得到如下结果:
0x08048000 46K /work/ProgramFiles/jdk1.6.0_14/bin/java
0xb6763000 74K /work/ProgramFiles/jdk1.6.0_14/jre/lib/i386/libzip.so
0xb6774000 41K /lib/tls/i686/cmov/libnss_files-2.9.so
0xb6780000 37K /lib/tls/i686/cmov/libnss_nis-2.9.so
0xb678b000 29K /lib/tls/i686/cmov/libnss_compat-2.9.so
是加载的文件的信息
jmap -heap pid :
查看堆的配置和大当前各个区块的使用情况,如伊甸区、老年代,永久代。可以用此来判断内存目前的使用情况以及垃圾回收情况:
jmap -histo 选项
内存使用的柱状图,包含每个类,对象使用的内存大小。 VM 内部的类名以 * 前缀开头。
jmap -permstat 选项
输出所有类装载器在堆里产生的对象
包括每个装载器的名字,活跃,地址,父装载器,和其总共加载的类大小。
jmap -permstat pid
-------------------
5. netstat
通过这个命令可以看到linux系统当前在各个端口的链接状态,比如查看数据库连接数等等
6. jinfo
描述:输出给定 java 进程所有的配置信息。包括 java 系统属性和 jvm 命令行标记等。
用法:
jinfo [ option ] pid
jinfo [ option ] executable core
jinfo [ option ] [server-id@]remote-hostname-or-IP
例子:
jinfo pid
这个命令包含了 JDK 和 JVM 运行起来时的一些属性。
7. jstatd
启动jvm监控服务。它是一个基于rmi的应用,向远程机器提供本机jvm应用程序的信息。默认端口1099。
实例:jstatd -J-Djava.security.policy=my.policy
my.policy文件需要自己建立,内如如下:
grant codebase "file:$JAVA_HOME/lib/tools.jar" {
permission java.security.AllPermission;
};
这是安全策略文件,因为jdk对jvm做了jaas的安全检测,所以我们必须设置一些策略,使得jstatd被允许作网络操作。
8. jps
列出所有的jvm实例
实例:
jps
列出本机所有的jvm实例
jps 192.168.0.77
列出远程服务器192.168.0.77机器所有的jvm实例,采用rmi协议,默认连接端口为1099
(前提是远程服务器提供jstatd服务)
输出内容如下:
jones@jones:~/data/ebook/java/j2se/jdk_gc$ jps
6286 Jps
6174 Jstat。
9. jconsole
一个图形化界面,可以观察到java进程的gc,class,内存等信息。虽然比较直观,但是个人还是比较倾向于使用jstat命令(在最后一部分会对jstat作详细的介绍)
<!--EndFragment-->
分享到:
相关推荐
jvm自己学习总结,对JVM的工作原理进行记录学习笔记
买的JVM学习资料(深入JVM内核—原理、诊断与优化),给大家分享还有自己整理的学习笔记
2.多进程,迅雷同时下载多个资源 3.并发Concurrency,一个cpu在多个线程之间复用。所有并发处理都会经历排 队等候,唤醒,执行等步骤。微观上排队,宏观上同时! 4.并行Parallelism,多个线程同时发生并处理(多核)...
jvm的基础知识总结,根据线程共享和线程私有来划分,进行分别描述和具体参数解释和设置,可以更好的学习jvm的基础知识,方便以后运用
从实践中不断总结摸索的JVM调优经典之作,希望能给广大网友带来帮助!
第一节:学习JVM的意义和目标 1.1 意义: 1.2 目标: 第二节:JVM内存模型 1.1 概念 1.2 JVM内存模型 1.3 Heap堆内存模型 第三节:定位垃圾对象的依据 1.1 引用计数法 1.2 可达性算法 第四节:垃圾回收算法 ...
个人对JVM的总结图。包括JVM的五部分(Program Counter Register、JVM Stack、Native Method Stack、heap、method area)。欢迎各位网友指正错误,互相学习讨论
学习总结 包括Java JVM MySQL NoSQL UML 缓存 消息 分布式事务-StudySummary
Jvm知识的基础详细学习笔记,总结了Jvm知识的各个知识点,可以用来复习以及对基础知识的巩固,对新人的学习很有帮助。
《JVM必知必会》记录了对JVM的总结及学习笔记,详解的介绍了什么是jvm,以及弄清楚jvm的工作原理等等,会深入了解JVM有一定的帮助。 Java Virtual Machine(Java虚拟机),它bai是一个虚构出来du的计算机,是通过在...
学习总结 包括Java JVM MySQL NoSQL UML 缓存 消息 分布式事务 SOA 微服务 敏捷 架构设
MySQL、JVM、RocketMQ、JUC、设计模式、数据结构与算法学习总结
自己总结的jvm中堆的笔记,绘制了详细的思维导图,每个思维导图中均有详细的博文解释,方便大家学习和理解,免费分享给大家。适合jvm的爱好者和学习者
本文档详细讲解了JVM(Java Visual Mathine)的方方面面,首先由java的特性来描绘JVM的大致应用,再详细阐释了 JVM 的原理及内存管理机制和调优,讲述了与JVM密切...本文内容是对网络内容的总结,是学习 JVM 的好资料。
jvm内存溢出 学习笔记
总结了学习jvm调优的知识点,便于大家随时查看,快速串联思维。主要包括:java内存结构、堆内存的构成、堆内存参数调整、垃圾收集算法、垃圾收集器选择、JVM参数、java对象的内存分配过程、Tomcat调优并使用Jmeter...
自己总结的jvm中方法区的笔记,绘制了详细的思维导图,每个思维导图中均有详细的博文解释,方便大家学习和理解,免费分享给大家。适合jvm的爱好者和学习者
主要介绍了最全面的JVM优化经验总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,,需要的朋友可以参考下
自己学习总结JVM垃圾回收机制的结构图,一起分享!!!
自己在学习和面试过程中总结的一些常见面试题 , 包含了java内存模型 , java8以后内存变化. 垃圾回收算法, 常见的垃圾回收器 , G1垃圾回收器的优化 堆外内存如何使用等. 希望和大家共同进步 . 祝拿到满意的...