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、内存泄露和内存溢出的区别是什么?

    内存泄漏时代码问题

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

  • 相关阅读:
    13.Convert BST to Greater Tree(将树转为更大树)
    13.调用数组顺序使奇数位于偶数前面
    12.数值的整数次方
    11.二进制中1的个数
    12.Hamming Distance(汉明距离)
    11.Find All Numbers Disappeared in an Array(找出数组中缺失的数)
    10.Find All Anagrams in a String(在一个字符串中发现所有的目标串排列)
    垃圾收集器与内存分配策略---垃圾收集器
    线程之间的协作
    1287. Mars Canals(DP)
  • 原文地址:https://www.cnblogs.com/aligege/p/8397997.html
Copyright © 2011-2022 走看看