• kill -QUIT <pid>


    On Solaris and Linux a thread dump is also printed if the J2SE process receives a QUIT signal. So kill
    -QUIT <pid> causes the process with id <pid> to print a thread dump to its standard output.
    or

    kill -3 <pid>

    java问题定位和诊断
    post-mortem事后剖析,验尸

    hs_err_<pid>.log致命错误日志
    -XX:OnError指定崩溃时执行的脚本,这是可以强制做dump
    -XX:+ShowMessageBoxOnError让进程停下来,启动gdb等
    jinfo获得配置信息
    jmap共享对象列表,-heep,-histo,-permstat

    死锁或挂起
    jstack
    jdb

    性能和资源消耗
    jconsole
    jstat

    HPROF Profiler动态库jvm ti接口
    jhat

    -XX:+HeapDumpOnOutOfMemoryError工作目录下输出文件java_pid<pid>.hprof
    -XX:HeapDumpPath=
    -XX:+HeapDumpOnCtrlBreak
    -XX:+PrintClassHistogram
    -Xcheck:jni

     -verbose:gc可以用管理api或jvmti动态使能
    -XX:+PrintGCDetails
    -XX:+PrintGCTimeStamps

    -verbose:class为类加载或卸载写日志
    -verbose:jni

    java -agentlib:hprof=heap=sites ToBeProfiledClass
    java -agentlib:hprof=help
    javac -J-agentlib:hprof=heap=sites Hello.java
    java -agentlib:hprof=file=dump.hprof,format=b <Application>java5update7以后都不需要这样自麻烦了,用选项-XX:+HeapDumpOnCtrlBreak;如果不能在命令行指定,可以用环境变量指定:
    JAVA_TOOL_OPTIONS
    java.security.debug System Property

     ltrace动态库调用
    mtrace内存分配
    strace系统调用

    Exception in thread “main” java.lang.OutOfMemoryError: Java heap space

    配置太少内存导致堆的某个部分不够分配,也可能是交换空间不够大导致系统的内存用尽,并不一定是内存泄露。有finalizer方法的对象在gc后被放在一个队列,有个专门线程会回收它,但是如果产生对象的线程高优先级,导致产生的速度大于回收速度也可能导致ooe。

    Exception in thread “main” java.lang.OutOfMemoryError: PermGen space

    -XX:MaxPermSize

    String.intern()也会用掉永久代空间

    Exception in thread “main” java.lang.OutOfMemoryError: Requested array size exceeds VM limit

    Exception in thread “main” java.lang.OutOfMemoryError: request <size> bytes for <reason>. Out of swap space?
    Exception in thread "main" java.lang.OutOfMemoryError: <reason>
            <stack trace>(Native method)
    A crash instead of an OutOfMemoryError这是因为本地方法分配内存失败并且没检查返回值
    -Xshare:off 关闭类数据共享

     -Xrs

  • 相关阅读:
    flask读书笔记-flask web开发
    flask 杂记
    ubuntu redis 安装 &基本命令
    redis 订阅&发布(转载)
    Redis键值设计(转载)
    python2 python3区别
    捕获异常
    开源的微信个人号接口
    工具
    HDU2966 In case of failure(浅谈k-d tree)
  • 原文地址:https://www.cnblogs.com/jvava/p/3517402.html
Copyright © 2020-2023  润新知