美文网首页
GC调优工具

GC调优工具

作者: 蓝调_4f2b | 来源:发表于2022-11-26 12:34 被阅读0次

    1. jps

    查看当前正在运行的所有java进程。

    1. Jmap

    用来查看内存信息,实例个数及占用空间大小

    1.1 查看某个java进程信息

    jmap -histo pid > ./log.txt


    jmap.png

    其中:
    (1)instances: 实例数量
    (2)bytes: 占用空间大小
    (3)class name: 类名称

    1.2 查看该进程堆信息

    (1)jmap -heap pid


    查看该进程堆信息.png

    (2)查看堆内存dump
    jmap -dump:format=b, file=eureka.hprof pid

    2. jstack

    2.1 查看进程是否死锁

    使用命令:jstack pid

    2.2 尝试查找cpu占用最高的线程堆栈信息

    (1)top -p pid找到java进程内存信息


    top -p pid.png

    (2)按H,获取每个线程的内存信息


    获取每个线程的内存信息.png
    (3)找到内存和cpu占用最高的线程tid,比如19664
    (4)转为十六进制得到

    0x4cd0,此为线程id的十六进制表示
    (5)执行jstack 19663|grep
    -A 10 4cd0,得到线程堆栈信息中4cd0这个线程所在的位置。

    3. jinfo

    查看正在运行的java应用的扩展参数。
    (1)查看jvm相关参数:
    jinfo -flags pid

    4. jstat

    查看堆内存各个部分的使用量,加载类数量。

    4.1 垃圾回收统计

    jstat -gc pid,查看垃圾回收器整体情况,以此评估GC压力


    jstat -gc pid.png
    4.2 评估JVM运行情况

    (1)检查年轻代对象增长速度
    jstat -gc pid 1000 10(每隔1秒执行1次命令,共执行10次)
    (2)优化思路
    尽量让每次Young GC后的存活对象小于Survivor区域的50%,都留存在年轻代里。尽量别让对象进入老年
    代。尽量减少Full GC的频率,避免频繁Full GC对JVM性能的影响。

    相关文章

      网友评论

          本文标题:GC调优工具

          本文链接:https://www.haomeiwen.com/subject/hcfcfdtx.html