• jvm调优(二)


    栈内存溢出,主要发生在大数据批量处理的情况,一般解决方案:1.加大栈内存 2.分批处理(用事物,全通过则通过,没有通过则回滚) 

    cpu过高,死锁啊,内存过高啊,i/0问题啊 都可以看 线程栈 jstat

    堆内存溢出用jmap  

    full gc 一般户导致 Cpu 高,所以当 cpu突然很高的时候 也可以排查下 是不在进行 full gc 

    -----------------------------------------------------------------------------------------------------------------------------------------------

    jvisualvm

    配置 复制 startup.sh 文件为 startup_jvisualvm.sh

    添加如下配置:
    (最后一行)

    export CATALINA_OPTS="$CATALINA_OPTS-Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=192.168.189.129  -Dcom.sun.management.jmxremote.port=1050 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password  -Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access"
    exec "$PRGDIR"/"$EXECUTABLE" start "$@"
    

    然后

    添加就行了

    插件的安装:

    备注:

    压测的时候 点击开始,结束后点击 停止,然后点击 拍照:

    在快照中 可以定位到 使用cpu高的 方法:

     

    堆 dump 

    将 生成的文件  用mat 打开

     

    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    jprofiler 测试神器:

    版本要一致

    客户端:

    下一步:创建一个 远程的,选择远程的操作系:

    下一步:配置jvm厂商,版本, jvm32还是64

    看java版本
    [root@besttest bin]# java -version
    java version "1.8.0_73"
    Java(TM) SE Runtime Environment (build 1.8.0_73-b02)
    Java HotSpot(TM) 64-Bit Server VM (build 25.73-b02, mixed mode)
    看位数:
    [root@besttest bin]# uname -a
    Linux besttest.com 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
    

    下一步:配置 linux ip地址:

    下一步配置 服务端  jprofiler 安装路径:

    下一步:配置端口号:

    下一步:把生成的配置考到 启动文件中去:(自己创建的startup_jprofiler.sh:见服务段操作)

    ok 完成

    服务端:

    下载解压,创建startup.sh 文件为 startup_jprofiler.sh

    CATALINA_OPTS="-agentpath:/opt/jprofiler9/binnux-x64bjprofilerti.so=port=8849,nowait $CATALINA_OPTS"
    export CATALINA_OPTS
    
    # end of modifications
    
    exec "$PRGDIR"/"$EXECUTABLE" start "$@"
    

    用法:

     

     还可以看具体方法:

     查看调用树

      

     ---------------------------------------------------------------------------

    cpu使用 情况:

  • 相关阅读:
    手机进水不要慌,四个步骤告诉您正确处理方法!
    2021-08-17:学习项目代码流程
    Docker使用Centos镜像安装Openssh服务
    OpenResty简介、下载流程、简单教学
    go接收者和锁注意事项
    PHPstorm精进
    centos7找回root密码
    功能测试
    删除排序数组中的重复项
    Java多线程
  • 原文地址:https://www.cnblogs.com/hanzhao1987/p/6096251.html
Copyright © 2020-2023  润新知