通过jvm监控项目运行情况

在项目运行的过程中,难免会出现一些异常,尤其讨厌的就是内存异常或是内存的大量占用!

我们的项目是在tomcat 6上运行的,在网上了解过比较多的内存检测,但是当初没有尽力去看和实践。现在谨将实现过程做个日志:

1.先下载一个 MemoryAnalyzer(http://www.eclipse.org/mat/)

2.对运行的tomcat进行监控。可以通过运行jmap命令收集 监控数据,jmap是jdk自带的运行程序,应该在%JAVA_HOME%/jdk-version/bin路径下。设置好环境变量后,直接在命令窗口下输入jmap+回车,可以出现对jmap命令的参数说明:

Usage:
jmap -histo <pid>
(to connect to running process and print histogram of java object heap
jmap -dump:<dump-options> <pid>
(to connect to running process and dump java heap)

dump-options:
format=b binary default
file=<file> dump heap to <file>

Example: jmap -dump:format=b,file=heap.bin <pid>


对于 MemoryAnalyzer工具来说,它需要hprof格式的文件,所以,可以在命令窗口执行:

 jmap -dump:format=b,file=heap.hprof <pid>后面的pid是指java的进程id,尽管我们使用的是tomcat但是依然是以jvm作为运行环境的(这句话有点多余!),总而言之,不要把tomcat的进程当成jvm的进程来监视就对了!

运行这个命令后会在java jdk的bin路径下生成一个 heap.hprof文件。

3.在MemoryAnalyzer中打开heap.hprof,接下来根据MemoryAnalyzer的提示来进行就可以了!

 

还有另外一种方法,那就是通过jconsole来查看内存的运行情况 。jconsole也是在%JAVA_HOME%/jdk-version/bin路径下。只要在命令窗口中运行,基本上就知道该如何使用了!

这里有这么一篇文章,可以看看:

http://hi.baidu.com/xuwanbest/blog/item/3f6d4c7b375ff4f10bd18731.html 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值