深入探索JAVA虚拟机(JVM )— 内存调优

jvm问题排查和调优:

jps主要⽤来输出JVM中运⾏的进程状态信息。

jstat命令可以⽤于持续观察虚拟机内存中各个分区的使⽤率以及GC的统计数据

jmap可以⽤来查看堆内存的使⽤详情。

jstack可以⽤来查看Java进程内的线程堆栈信息。 jstack是个⾮常好⽤的⼯具,结合应

⽤⽇志可以迅速定位到问题线程。

Java性能分析⼯具:

jdk会⾃带JMC(JavaMissionControl)⼯具。可以分析本地应⽤以及连接远程ip使⽤。提

供了实时分析线程、内存,CPU、GC等信息的可视化界⾯。

JVM内存调优:

对JVM内存的系统级的调优主要的⽬的是减少GC的频率和Full GC的次数。过多的GC和

Full GC是会占⽤很多的系统资源(主要是CPU),影响系统的吞吐量。

使⽤JDK提供的内存查看⼯具,⽐如JConsole和Java VisualVM。 1)监控GC的状态,使⽤各种JVM⼯具,查看当前⽇志,并且分析当前堆内存快照和gc

⽇志,根据实际的情况看是否需要优化。

2)通过JMX的MBean或者Java的jmap⽣成当前的Heap信息,并使⽤Visual VM或者

Eclipse⾃带的Mat分析dump⽂件

3)如果参数设置合理,没有超时⽇志,GC频率GC耗时都不⾼则没有GC优化的必要,如

果GC时间超过1秒或者频繁GC,则必须优化

4)调整GC类型和内存分配,使⽤1台和多台机器进⾏测试,进⾏性能的对⽐。再做修

改,最后通过不断的试验和试错,分析并找到最合适的参数

调优命令:

Sun JDK监控和故障处理命令有jps jstat jmap jhat jstack jinfo

• jps,JVM Process Status Tool,显示指定系统内所有的HotSpot虚拟机进程。

• jstat,JVM statistics Monitoring是⽤于监视虚拟机运⾏时状态信息的命令,它可

以显示出虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运⾏数据。

• jmap,JVM Memory Map命令⽤于⽣成heap dump⽂件

• jhat,JVM Heap Analysis Tool命令是与jmap搭配使⽤,⽤来分析jmap⽣成的

dump,jhat内置了⼀个微型的HTTP/HTML服务器,⽣成dump的分析结果后,可

以在浏览器中查看

• jstack,⽤于⽣成java虚拟机当前时刻的线程快照。 • jinfo,JVM Configuration info 这个命令作⽤是实时查看和调整虚拟机运⾏参数。

调优⼯具:

常⽤调优⼯具分为两类, jdk⾃带监控⼯具:jconsole 和 jvisualvm,第三⽅有:

MAT(Memory Analyzer Tool)、GChisto。 • jconsole,Java Monitoring and Management Console是从java5开始,在JDK中

⾃带的java监控和管理控制台,⽤于对JVM中内存,线程和类等的监控

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值