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 �Cheap 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对象的信息及其占用量

更多相关文章

  1. Zabbix - LINUX下CPU,硬盘,流量,内存监控
  2. Linux内存管理 - PAGE_OFFSET理解
  3. Linux内存占用分析 进程内存空间
  4. 导出内存(linux中)
  5. 双插槽与单插槽内存模型?
  6. CUDA统一内存工作(具体来说,cudaMallocManaged();)
  7. Linux内存管理 (10)缺页中断处理
  8. 进程实际内存占用: 私有驻留内存数(Private RSS)介绍
  9. 数据库对象的创建和管理

随机推荐

  1. 十大经典排序算法动画与解析,看我就够了!(配
  2. 冰与火之歌:「时间」与「空间」复杂度
  3. SSH AKS集群节点的几种方法(一)
  4. 红帽 redhat 更改yum源为本地光盘(cdrom)
  5. android连续调用setVisibility(View.VISI
  6. 从Gartner 最新“客户之选”报告,看国内外
  7. 懵逼树上懵逼果:学习二分搜索树
  8. Android(安卓)清单目录application对应属
  9. 【春节特辑】神奇的二进制
  10. 程序员群体的性取向如何?Stack Overflow