zoukankan      html  css  js  c++  java
  • 性能排查常用命令

    1、查看垃圾回收情况

    jstat -gc pid 1000 10       1秒钟打印一次,共打印10次停止

    2、查看JVM启动参数

    jinfo -flags pid

    3、JVM启动参数中增加gc日志参数   。gc日志分析参考:http://swcdxd.iteye.com/blog/1859858

      -XX:+PrintGC 输出GC日志

      -XX:+PrintGCDetails 输出GC的详细日志

      -XX:+PrintGCTimeStamps 输出GC的时间戳(以基准时间的形式)

      -XX:+PrintGCDateStamps 输出GC的时间戳(以日期的形式,如 2013-05-04T21:53:59.234+0800)

      -XX:+PrintHeapAtGC 在进行GC的前后打印出堆的信息

      -Xloggc:../logs/gc.log 日志文件的输出路径

      -XX:ReservedCodeCacheSize=128m   调整代码缓存区大小。代码缓存区满的时候,会报OutOfMemoryError

      在启动参数里加个-XX:+DisableExplicitGC  ,可以禁止业务代码主动调用System.gc()进行full gc

      配置如:

        -XX:+PrintGCDetails -Xloggc:../logs/gc.log -XX:+PrintGCTimeStamps  

    4、System.gc()执行的是full gc,日志中,会有(System)的标记

    5、full gc 太频繁的排查思路

    参考:http://blog.csdn.net/chenleixing/article/details/46706039

    参考:http://blog.csdn.net/shiyong1949/article/details/52585256

    其中以下两点可能不好排查:

      5、统计得到的Minor GC晋升到旧生代的平均大小大于老年代的剩余空间

      6、堆中分配很大的对象

    6、几种内存溢出的场景

    参考:http://blog.csdn.net/u011080472/article/details/51322119

    对于强引用, 当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足问题

    7、内存泄露和内存溢出的区别是什么?

    内存泄漏时代码问题

    内存溢出是现象。可能是因为内存泄漏导致的,也可能是配的启动参数有问题

  • 相关阅读:
    JAVA环境变量的配置
    中国大学MOOC-翁恺-C语言程序设计习题集-解答汇总
    1009. 说反话 (20)
    akoj-1162-计算表达式
    akoj-1153-p次方求和
    akoj-1055-矩阵乘法
    akoj-1076-Encoding
    C语言程序设计进阶 翁恺 第4周编程练习
    akoj-1272-字母统计
    akoj-1267-独木舟上的荡漾
  • 原文地址:https://www.cnblogs.com/aligege/p/8397997.html
Copyright © 2011-2022 走看看