zoukankan      html  css  js  c++  java
  • jvm调优的基本步骤

    1、jps 查看应用进程
    2、jinfo -flags pid 查看曾经赋值的一些参数
    3、jstat
    查看类装载信息
    jstat -class PID 1000 10 查看某个java进程的类装载信息,每1000毫秒输出一次,共输出10次
    查看垃圾收集信息
    jstat -gc PID 1000 10
    4、jstack
    查看线程堆栈信息
    jstack PID
    5、jmap
    生成堆快照
    jmap -heap PID
    dump出堆内存相关信息
    jmap -dump:format=b,file=heap.hprof PID
    jvm配置一下参数会自动生成dump文件,不用手动生成。
    -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=heap.hprof


    常用分析工具:
    1、jconsole
    2、jvisualvm
    3、arthas
    arthas常用命令:
    version:查看arthas版本号

    help:查看命名帮助信息

    cls:清空屏幕

    session:查看当前会话信息

    quit:退出arthas客户端

    dashboard:当前进程的实时数据面板

    thread:当前JVM的线程堆栈信息

    jvm:查看当前JVM的信息

    sysprop:查看JVM的系统属性

    sc:查看JVM已经加载的类信息

    dump:dump已经加载类的byte code到特定目录

    jad:反编译指定已加载类的源码

    monitor:方法执行监控

    watch:方法执行数据观测

    trace:方法内部调用路径,并输出方法路径上的每个节点上耗时

    stack:输出当前方法被调用的调用路径

    ......
    4、MAT 对文件分析工具
    5、gc日志分析
    -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -Xloggc:gc.log

    gc日志分析工具:
    在线:http://gceasy.io
    离线:GCViewer

    1、cpu占用率高如何排重

    (1)top命令定位进程

    (2)top -Hp PID 查看进程中各个线程cpu使用情况。 例:top -Hp 1893

    (3)例如:在1893进程中4519线程cpu使用率较高

    把4519这个线程转为16进制   print   %x   4519      ——> 11a7

    接下来通过jstack命令,查看栈信息

    sudo  -u  admin  jstack  1893 | grep  -A  200 11a7

    (3)定位代码,分析问题。 

  • 相关阅读:
    use paramiko to connect remote server and execute command
    protect golang source code
    adjust jedi vim to python2 and python3
    install vim plugin local file offline
    add swap file if you only have 1G RAM
    datatables hyperlink in td
    django rest framework custom json format
    【JAVA基础】网络编程
    【JAVA基础】多线程
    【JAVA基础】String类的概述和使用
  • 原文地址:https://www.cnblogs.com/sunny-miss/p/12057610.html
Copyright © 2011-2022 走看看