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)定位代码,分析问题。 

  • 相关阅读:
    samba服务器常用指令
    如何将根文件系统制作成yaffs格式,并设置从yaffs启动
    如何从NFS文件系统启动
    zImage转换为uImage
    转载 uboot 命令
    xml的使用入门
    oracle(2)oracle的基础入门
    redis(3)redis的基础入门(java)
    redis(2)redis的基础入门(linux)
    redis(1)redis的安装
  • 原文地址:https://www.cnblogs.com/sunny-miss/p/12057610.html
Copyright © 2011-2022 走看看