1、top命令
top -d 1 -p pid [,pid ...] //设置为delay 1s,默认是delay 3s
如果想根据内存使用量进行排序,可以shift + m(Sort by memory usage)
打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量)。
可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本。使用方法 jmap -histo pid。如果连用SHELL jmap -histo pid>a.log可以将其保存到文本中去,在一段时间后,使用文本对比工具,可以对比出GC回收了哪些对象。jmap -dump:format=b,file=outfile 3024可以将3024进程的内存heap输出出来到outfile文件里,再配合MAT(内存分析工具(Memory Analysis Tool),使用参见:http://blog.csdn.net/fenglibing/archive/2011/04/02/6298326.aspx)或与jhat (Java Heap Analysis Tool)一起使用,能够以图像的形式直观的展示当前内存是否有问题。
64位机上使用需要使用如下方式:
jmap -J-d64 -heap pid
显示java进程内存使用的相关信息
jmap pid #打印内存使用的摘要信息
jmap –heap pid #java heap信息
jmap -histo:live pid #统计对象count ,live表示在使用
jmap -histo pid >mem.txt #打印比较简单的各个有多少个对象占了多少内存的信息,一般重定向的文件
jmap -dump:format=b,file=mem.dat pid #将内存使用的详细情况输出到mem.dat 文件
2、命令格式
SYNOPSIS
jmap [ option ] pid
jmap [ option ] executable core
jmap [ option ] [server-id@]remote-hostname-or-IP
3、参数说明
1)、options:
[/b]executable Java executable from which the core dump was produced.
(可能是产生core dump的java可执行程序)
core 将被打印信息的core dump文件
remote-hostname-or-IP 远程debug服务的主机名或ip
server-id 唯一id,假如一台主机上多个远程debug服务
2)、基本参数:
-dump:[live,]format=b,file=<filename> 使用hprof二进制形式,输出jvm的heap内容到文件=. live子选项是可选的,假如指定live选项,那么只输出活的对象到文件.
-finalizerinfo 打印正等候回收的对象的信息.
-heap 打印heap的概要信息,GC使用的算法,heap的配置及wise heap的使用情况.
-histo[:live] 打印每个class的实例数目,内存占用,类全名信息. VM的内部类名字开头会加上前缀”*”. 如果live子参数加上后,只统计活的对象数量.
-permstat 打印classload和jvm heap长久层的信息. 包含每个classloader的名字,活泼性,地址,父classloader和加载的class数量. 另外,内部String的数量和占用内存数也会打印出来.
-F 强迫.在pid没有相应的时候使用-dump或者-histo参数. 在这个模式下,live子参数无效.
-h | -help 打印辅助信息
-J 传递参数给jmap启动的jvm.
pid 需要被打印配相信息的java进程id,创业与打工的区别 - 博文预览,可以用jps查问.
4、使用示例
1)、[fenglb@ccbu-156-5 ~]$ jmap -histo 4939
[输出较多这里不贴了]
2)、[fenglb@ccbu-156-5 ~]$ jmap -dump:format=b,file=test.bin 4939
Dumping heap to /home/fenglb/test.bin ...
Heap dump file created
jstat
jstat -class pid:显示加载class的数量,以及所占空间等信息
jstat -compiler pid:显示vm实时编译的数量
jstat -gc pid:可以显示gc的信息,查看gc的次数,以及时间,最后五项,分别是full gc和young gc次数
jstat -gccapacity:显示vm内存中三代对象的使用和占用大小
jstat -gcnew pid :new对象的信息
jstat -gcnewcapaicty pid :new对象的信息及其占用量
分享到:
相关推荐
本篇文章将详细阐述如何使用`top`命令查看CPU使用情况,以及如何通过`free`命令检查内存使用情况,同时也会涉及查看JVM内存使用的方法。 1. **使用`top`命令查看CPU使用情况** `top`命令提供了一个实时的全屏界面...
根据给定的文件信息,我们可以看到,JAVA 进程在 64 位 LINUX 下占用了巨大内存,达到 11G,已分配地址空间更是 17G。这是一个非常严重的问题,因为它可能会导致系统崩溃和性能下降。 首先,让我们来分析 HEAP 配置...
`free`命令可以查看系统的内存使用情况,`vmstat`则提供更详细的内存和虚拟内存统计。 监控进程和内存的工具有很多种,例如`sysstat`套件包含的`sar`能够记录和报告系统活动,包括进程创建速率和内存使用趋势。`...
除了MAT,还有一些其他工具和策略可以帮助检测内存泄露,如使用VisualVM、JProfiler等,或者通过JMX监控JVM的内存使用情况。在代码层面,可以使用弱引用、软引用等技术避免不必要的内存占用。 对于内存溢出问题,...
`jmap-heap.txt`则提供了堆内存的详细报告,包括各代的使用情况和垃圾回收信息。`VmPeak.txt`可能包含了JVM峰值内存使用情况。 分析这些文件,我们可以获取到系统的内存使用状况,如哪些对象占用大量内存,是否存在...
jstat 是一个用于监视 JVM 内存使用情况的强大工具,它可以提供有关堆内存、非堆内存、类加载和垃圾收集器活动的详细信息。通过 jstat,你可以监控 JVM 各个区域的内存使用率,包括年轻代、老年代和永久代,这对于...
jmap是一个命令行工具,用于从Core文件或进程中获取内存的具体匹配情况,包括Heap size、Perm size等等。jmap工具目前仅在Solaris和Linux的JDK版本中提供。 jdb jdb是一个命令行工具,用于对Core文件和正在运行的...
1. 查看端口占用情况:`netstat` 命令可以查看端口占用情况,例如,`netstat -tln | grep 8080` 查看端口 8080 的使用情况。 2. 查看端口所属程序:`lsof` 命令可以查看端口所属程序,例如,`lsof -i :8080` 查看...
- **内存**:`free`查看内存使用情况,`vmstat`展示虚拟内存统计,`top`或`htop`也能看到内存使用情况。 - **CPU**:`top`或`htop`实时监控CPU使用率,`mpstat`报告每个CPU的统计信息。 - **磁盘**:`df`显示磁盘...
为了监控Java应用的性能,可以使用`jps`(Java进程状态)列出运行中的Java进程,`jstat`(JVM统计监测工具)查看JVM的统计信息,`jmap`(内存映射工具)生成堆转储,以及`jhat`(堆分析工具)分析堆转储。...
jmap命令可以帮助开发者快速地了解Java应用程序的内存使用情况,从而快速定位问题所在。 五、jdb命令 jdb命令是一个强大的调试工具,用于对core文件和正在运行的Java进程进行实时地调试。jdb工具可以帮助开发者...
`jmap`可以查看堆内存使用情况,判断是否存在内存泄露;`dmesg`则可以查看内核日志,看是否有硬件或驱动层面的问题。 在实际操作中,问题排查是一个迭代过程,可能需要反复使用这些工具并结合业务逻辑进行分析。...
安装完成后,开发人员可以使用`javac`命令进行编译,`java`命令执行程序,`jar`命令打包应用程序,以及一系列的JDK工具(如javadoc生成文档,jps查看Java进程,jmap分析内存等)。 7. **Java 11特性**: Java 11...
在Linux系统中,除了使用上述提到的命令进行问题排查之外,还可以使用ifconfig查看和配置网络接口信息,使用df命令检查磁盘空间使用情况,以及使用ps命令查看和管理进程。这些命令为问题排查提供了丰富的信息和手段...
* 查看 Java 进程的 heap 内存使用情况:jmap -heap * 生成 Java 进程的内存快照:jmap -dump:format=b,file=<filename>.hprof * 查看 Java 进程的栈信息:jstack -l 五、其它命令 最后,以下是一些其它常用的...
`JDK`自带了一些实用工具,如`jps`(Java进程查看器),`jinfo`(获取Java进程配置信息),`jmap`(内存映射工具),`jstack`(线程堆栈跟踪)等。这些工具可以帮助开发者进行性能监控和问题排查。 除此之外,`...
在Linux环境下,开发者还可以利用JDK的命令行工具,如`jps`查看Java进程,`jstat`监控JVM统计信息,`jmap`用于内存映射,以及`jstack`用于生成线程堆栈跟踪,这些都是进行性能调优和问题排查的重要工具。 总的来说...
解压安装后,用户可以使用`javac`编译Java源代码,用`java`命令运行Java程序,还可以使用JDK附带的各种工具,如`javadoc`生成API文档,`jps`查看Java进程,`jmap`进行内存分析等。 6. **兼容性和稳定性**: 虽然...
在开发Java应用时,JDK提供了一系列工具,如javac(Java编译器),jar(打包工具),javadoc(文档生成器),jps(Java进程查看器),jstack(线程堆栈跟踪),以及jmap(内存映射工具)等。这些工具对于开发、测试...