码迷,mamicode.com
首页 > 其他好文 > 详细

JVM内存知识备忘

时间:2018-09-16 00:35:24      阅读:261      评论:0      收藏:0      [点我收藏+]

标签:inf   rac   mes   pre   dock   pid   oracle   git   使用   

又是一篇备忘...
主要记录一些知识,进行一些资源的汇总.

先来群里liufor大大提供的两张图,清晰易懂:
技术分享图片
Dockerized Java
https://www.youtube.com/watch?v=NQ5hTEp-GTM

技术分享图片
Java on Linux for devs and ops
https://www.slideshare.net/aragozin/java-on-linux-for-devs-and-ops

常用配置&命令

常用命令

JVM启动用的命令行

jcmd process_id VM.command_line

手工触发gc

jcmd process_id GC.run

显示调优标志

jcmd process_id VM.flags [-all]

all比较有用 可以看到全部的 包括默认值 在排查一些问题的时候能看的信息比较多

内存dump 使用情况查看:

jmap -dump:format=b,file=test.bin process_id  
jmap -heap process_id  

更多内存信息

在linux上使用,使用/proc/pid/map内的信息,以及pmap.
使用gdp dump出内存查看信息
详见: http://lysu.github.io/blog/2015/02/02/how-to-deal-with-non-heap-or-native-memory-leak/

GC log相关

//日志数量 每个log大小 存放位置
-XX:NumberOfGCLogFiles=7
-XX:GCLogFileSize=64M
-Xloggc:/opt/jetty/logs/gc.log
//绝对时间戳 相对的用-XX:+PrintGCTimeStamps
-XX:+PrintGCDateStamps
//详细的信息 平均时间等 精简的用-XX:+PrintGC
-XX:+PrintGCDetails

NMT

-XX:NativeMemoryTracking=[off | summary | detail]
jcmd <pid> VM.native_memory [summary | detail | baseline | summary.diff | detail.diff | shutdown] [scale= KB | MB | GB]  

可以比较有效看到几个部分的内存使用情况 以及设置baseline后 在看具体的变化量
使用时要先设置JVM参数 生产环节慎用detail
参考文档:
https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/tooldescr007.html

博客 & 文章

一些文章和不错的博客.
随着时间的迁移和JVM的升级,这里(包括这文)的内容可能会过时,自己甄别一下~

你假笨博客
http://lovestblog.cn/

Alexey Ragozin的博客(也是第二图ppt的作者)
http://blog.ragozin.info/

JVM内存调优相关的一些笔记(杂)
https://zhanjindong.com/2016/03/02/jvm-memory-tunning-notes

REDUCE LONG GC PAUSES
https://blog.gceasy.io/2016/11/22/reduce-long-gc-pauses/

Oh the Places Your Java Memory Goes
https://jkutner.github.io/2017/04/28/oh-the-places-your-java-memory-goes.html

JVM内存知识备忘

标签:inf   rac   mes   pre   dock   pid   oracle   git   使用   

原文地址:https://www.cnblogs.com/fairjm/p/jvm_memory_note.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!