JVM状态监控常用命令整理总结

8 篇文章 0 订阅
5 篇文章 0 订阅
java.lang.OutOfMemoryError: Java heap space这个错误表示JVM的新生代和老生代的内存不足。出现这个错误说明应用程序出现了内存溢出或者程序所需要的内存大于JVM的内存设置了。
遇到这个问题的时候,首先我们可以调节JVM的HEAP内存的大小,具体可以通过-Xms和-Xmx来进行设置,如果设置大以后还是会出现内存溢出,那么说明应用程序本身存在内存泄露,这个时候就需要我们对应用程序进行检查,找出导致内存泄露的地方,然后修正。
下面列出JVM状态监控的几个Java命令
1,查看JVM进程内存使用resource
top
top -p 6917
查看系统内存使用情况
free -m
2,查看堆内存使用情况 最大堆内存配置,年轻代EC/EU,FROM/TO,老年代OC/OU,永久代PC/PC的使用
jmap -heap 6917
此命令可查看使用的垃圾收集器配置. Parallel GC with 4 thread(s)
查看JVM堆中对象详细占用情况
jmap -histo 6917 > jmaphisto1819.log
堆内存 = 年轻代 + 年老代 + 永久代
年轻代 = Eden区 + 两个Survivor区(From和To)
3,进程堆栈状态输出 线程阻塞或等待等状态
jstack 6917 > jstack1802.log
在发生死锁时可以用jstack -l pid来观察锁持有情况
4,了解JVM堆内存使用和GC回收状态 250MS一次,执行4次.
jstat -gc 6917 250 4 > /tmp/jvmgc25042216.log
5,查看JAVA进程 jps
jps -v 查看进程启动时所带的JVM参数
6,进程内存使用情况dump到文件中
(1)jmap -dump:format=b,file=/tmp/dump.dat 6917
因生成转储文件大时很耗费系统资源,应避免系统高峰时运行此指令,否则会导致系统短暂无响应情况.
(2)使用hprof。启动虚拟机加入-Xrunhprof:head=site,会生成java.hprof.txt文件。该配置会导致jvm运行非常的慢,不适合生产环境。
(3)同10.在应用启动时配置相关的参数 -XX:+HeapDumpOnOutOfMemoryError,当应用抛出OutOfMemoryError时生成dump文件。
7,查看进程启动的参数配置
8,heap内存分析
jhat -J-Xmx1024M /tmp/dump.dat
执行后等待console 中输入start HTTP server on port 7000 即可使用浏览器访问 IP:7000
这个也就平时自己玩儿的时候用用,在生产环境就不太靠谱儿.
Eclipse Memory Analyzer
eclipse 市场查找安装.
IBM HeapAnalyzer
D:\>java -Xmx512m -jar ha456.jar dumpserver12232.dat
9,生成线程堆栈信息
kill -3 后面跟上java进程的pid,这样就能生成 thread dump 了.
因为jvm已经hang了,所以有时候kill -3看不到线程栈是正常的。
10,堆内存溢出时保存线程堆栈到文件中 HeapDumpOnOutOfMemoryError 
在jvm的 启动参数中追加 下列信息,可以在发生 OutOfMemoryError的时候生成 oom.hprof文件
catalina.sh添加:
JAVA_OPTS="$JAVA_OPTS -Xmx52m -Xms52m -XX:PermSize=25m -XX:MaxPermSize=25m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/tomcat8093.dump"

11,查看运行JVM进程时指定的参数
jinfo -flags 6917
jinfo 6917
jinfo -flag MaxNewSize 6917
12,选择垃圾收集器
13,调优总结 xms xmx xmn xss

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值