JVM系列实用命令(jmap、jstat、jstack)-创新互联

概论
命令监控最方便,但是最优的方式是通过工具打开监控:比如jconsole、jvisualvm,几乎全部的信息都有了,另外jvisualvm支持远程监控,但是需要做一些配置
使用命令的目的

成都创新互联公司是一家集成都网站制作、网站设计、外贸网站建设、网站页面设计、网站优化SEO优化为一体的专业网站建设公司,已为成都等多地近百家企业提供网站建设服务。追求良好的浏览体验,以探求精品塑造与理念升华,设计最适合用户的网站页面。 合作只是第一步,服务才是根本,我们始终坚持讲诚信,负责任的原则,为您进行细心、贴心、认真的服务,与众多客户在蓬勃发展的市场环境中,互促共生。

获取垃圾回收器的类型和系统参数 // jmap -heap pid
查看应用启动的参数// jinfo -flags pid
查看当前各个代区的容量和使用量情况 // jstat
FGC、YGC的总次数和总耗时 // jstat
立即生成Dump文件 //jmap -dump:live,file=dump_001.bin PID
强制FullGC // jmap -dump:live
查看线程的运行信息(包括死锁的线程) // jstack -l pid

jmap命令

heap pid:查看 JDK的概况的最好的一个参数

JVM主要参数:垃圾回收器的类型、各种ratio、当前实际Size、MaxSize是多少

当前各个代区的使用情况:Eden、From、To、Old区、Perm区

JVM系列 实用命令(jmap、jstat、jstack)
JVM系列 实用命令(jmap、jstat、jstack)
参数解读

垃圾回收器: parallel + Concurrent Mark-Sweep
堆区MaxSize是4G,也就是默认是操作系统的1/4,16G*1/4=4G
堆区低于40%,或者大于70% 会自动调整老年代的大小(但是不能低于xms的配置 2G,也不能高于 MaxSize 4G)
Perm区 大1G ,如我们配置
老年代(concurrent mark-sweep generation)容量:1715.25MB
年轻代:New Generation + 1 Survivor Space= 299.5MB+33.25MB
堆区的当前容量:1715.25+299.5+33.25=2048M

dump:生成快照文件,然后可以利用工具(比如jvisualvm)来分析dump包
dump堆到文件,format指定输出格式,live指明是活着的对象,file指定文件名

./jmap -dump:live,format=b,file=/usr/developer/huangForBackUp/test20190129.dump 25508

jmap还有一个额外的功能,通过命令触发FullGC,比如可以执行定时任务,在业务低峰期执行,会自动触发FullGC
因为在*:live前会进行full gc,如果带上live则只统计活对象,因此不加live的堆大小要大于加live堆的大小

jmap -histo:live <pid>
jmap -dump:live,file=dump_001.bin PID

jstat命令
gc: 主要查看FGC、YGC的总次数和累计耗时
查看堆内各个代区的当前容量和当前使用量(当前容量不等于MaxCapactiy,当前容量是根据条件动态调整的),因为当前容量不等于Max容量所以在定位问题的时候,没有太多的使用价值

- S0C : survivor0区的总容量
- S1C : survivor1区的总容量
- S0U : survivor0区已使用的容量
- S1C : survivor1区已使用的容量
- EC : Eden区的总容量
- EU : Eden区已使用的容量
- OC : Old区的总容量
- OU : Old区已使用的容量
- PC 当前perm的容量 (KB)
- PU perm的使用 (KB)
- YGC : 新生代垃圾回收次数
- YGCT : 新生代垃圾回收时间
- FGC : 老年代垃圾回收次数
- FGCT : 老年代垃圾回收时间
- GCT : 垃圾回收总消耗时间

gcutil:功能和gc 一样,但是是百分比的形式,读取更友好

gccapacity:读取各个代区的当前容量、大容量、当前使用量等信息

NGCMN : 新生代占用的最小空间
NGCMX : 新生代占用的大空间
OGCMN : 老年代占用的最小空间
OGCMX : 老年代占用的大空间
OGC:当前年老代的容量 (KB)
OC:当前年老代的空间 (KB)
PGCMN : perm占用的最小空间
PGCMX : perm占用的大空间

命令的使用:

./jstat -gc 91328
./jstat -gcutil 91328
./jstat -gccapacity 91328

jstack -l pid >> stackLog.log //-l 表示包括线程死锁的信息
输出当前应用的线程使用信息,其中包括线程死锁的相关信息

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

当前标题:JVM系列实用命令(jmap、jstat、jstack)-创新互联
网页链接:https://www.cdcxhl.com/article40/dpoeeo.html

成都网站建设公司_创新互联,为您提供手机网站建设电子商务外贸建站自适应网站域名注册网站策划

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都做网站