JVM 调优指标、JVM 日志、JVM 调优工具

参考

https://blog.csdn.net/weixin_42447959/article/details/81637909

JVM 调优指标

  • 内存占用:程序正常运行需要的内存大小。
  • 延迟:由于垃圾收集而引起的程序停顿时间。
  • 吞吐量:用户程序运行时间占用户程序和垃圾收集占用总时间的比值。

JVM 日志

调优可以依赖、参考的数据有系统运行日志、堆栈错误信息、gc日志、线程快照、堆转储快照等。

  • 系统运行日志:在程序代码中打印出的日志,即 logger 出的日志,描述了代码级别的系统运行轨迹(执行的方法、入参、返回值等)

  • 堆栈错误信息:当系统出现异常后,可以根据堆栈信息初步定位问题所在

  • GC日志:程序启动时用 -XX:+PrintGCDetails 和 -Xloggc:/data/jvm/gc.log 可以在程序运行时把gc的详细过程记录下来,或者直接配置“-verbose:gc”参数把gc日志打印到控制台

  • 线程快照:查看线程在某一时刻的状态,当系统中可能存在请求超时、死循环、死锁等情况时,可以根据线程快照来进一步确定问题。通过执行虚拟机自带的“ jstack pid ”命令,可以 dump 出当前进程中线程的快照信息,

  • 堆转储快照:程序启动时可以使用 “-XX:+HeapDumpOnOutOfMemory” 和 “-XX:HeapDumpPath=/data/jvm/dumpfile.hprof”,当程序发生内存溢出时,把当时的内存快照以文件形式进行转储(也可以直接用 jmap 命令转储程序运行时任意时刻的内存快照)

JVM 调优工具

  • jps(JVM process Status):查看虚拟机启动的所有进程、执行主类的全名、JVM启动参数

  • jstat(JVM Statistics Monitoring Tool):监视虚拟机信息,Java堆状况(各个区的容量、使用容量、gc时间等信息)

  • jmap(Memory Map for Java):查看堆内存信息 、每个类的实例数量和内存占用。jmap -dump 可以转储堆内存快照到指定文件

  • jconsole、jvisualvm:分析内存信息(各个区如Eden、Survivor、Old等内存变化情况)、线程数、类加载数和CPU占用率、GC情况、每个线程的堆栈信息、检测死锁、JVM参数

  • jhat(JVM Heap Analysis Tool) :分析内存快照

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值