zoukankan      html  css  js  c++  java
  • JVM常见问题

    1. java进程有多少个线程? top -Hp <pid>, jstack <pid>线程栈详细信息

    2. Java进程占用了多少物理内存? top -p <pid>  查看RSS(常驻内存) virtual memmory

    3. 查看Java进程各个区内存占用情况?加上启动参数:-XX:NativeMemoryTracking=detail, 用jcmd <pid> VM.native_memory, 注:如果忘记jcmd有哪些可用的选项,可用jcmd <pid> help查看。

    4. Java 线程栈默认大小多少? https://docs.oracle.com/cd/E13150_01/jrockit_jvm/jrockit/jrdocs/refman/optionX.html#wp1024112

    Platform
    Default
    Windows IA32
    64 KB
    Linux IA32
    128 KB
    Windows x86_64
    128 KB
    Linux x86_64
    256 KB
    Windows IA64
    320 KB
    Linux IA64
    1024 KB (1 MB)
    Solaris Sparc
    512 KB

    5. 堆内存默认应该占用多少物理内存?

    这个问题要分JAVA的运行模式,client还是Server,32位JVM还是64位的。产线一般都是64位+server,那么堆的大小不受限制,如果物理内存多于128G,那么heap最多可以达到32G。

    参考:

    https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/parallel.html#default_heap_size

    https://www.cnblogs.com/lzmrex/p/12102454.html

    6. Java堆默认各个区的比例?https://www.cnblogs.com/lzmrex/p/12336894.html

    7. JVM 日志参数:

    -XX:+PrintGCDetails

    -XX:+PrintGCDateStamps

    -XX:+PrintGCTimeStamps

    -Xloggc:<日志文件路径> 如:/opt/logs/sms/gc.log

    -XX:+UseGCLogFileRotation

    -XX:NumberOfGCLogFiles=<保留文件数>10

    -XX:GCLogFileSize=<文件大小>  如:100M

     8. OOM 怎么办? 查看日志,分析OOM的原因,是堆暴了?永久代暴了?还是无法创建线程了?加-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/service.hprof

     9. jstat 工具:

       9.1 查看jvm加载了多少类, 大小多少?jstat -class <pid> 

       9.2 各个代的容量,占用量,gc次数,gc时间,jstat -gc <pid>

       9.3 各个代的容量,新生代最小,最大容量 等等, jstat -gccapacity <pid>

       9.4 gc的原因,jstat -gccause <pid>

      9.5 meta space的容量 jstat -gcmetacapacity <pid>

      9.6 新生代的容量,对象在新生代存活的次数,TT对象在新生代存活的次数,MTT最大次数,DSS期望的幸存区大小

     9.7 参看各个代的大小比例 jstat -gcutil <pid>, E 89.82是指Eden占用量占总量的百分比。

    参考:https://blog.csdn.net/u012998254/article/details/81045414

    10. 查看jvm启动参数:jinfo pid

    11. 在线dump内存:jmap -dump:format=b,file=dump.hprof <process-id>

  • 相关阅读:
    c# 并行运算二
    c# 并行运算
    Task+http请求
    Task多线程
    SSO系统认证
    web系统权限设计
    AutoMapper的使用
    中间件
    express-middleware
    中间件概念
  • 原文地址:https://www.cnblogs.com/lzmrex/p/12525207.html
Copyright © 2011-2022 走看看