性能问题的查找
1)、使用w命令查看CPU的Load情况,Load越高说明问题越严重; 2)、使用jstat查看FGC发生的频率及FGC所花费的时间, FGC发生的频率越快、花费的时间越高,问题越严重; 2、导出数据:在应用快要发生FGC的时候把堆导出来 1)、查看快要发生FGC使用命令: jmap -heap 会看到如下图结果: 以上截图包括了新生代、老年代及持久代的当前使用情况,如果不停的重复上面的命令,会看到这些数字的变化, 变化越大说明系统存在问题的可能性越大, 特别是被红色圈起来的老年代的变化情况。 现在看到的这个值为使用率为99%或才快接近的时候, 就立即可以执行导出堆栈的操作了。 注:这是因为我这里没有在jvm参数中使用"-server"参数,也没有指定FGC的阀值, 在线上的应用中通过会指定CMSInitiatingOccup ancyFraction这个参数来指定当老年代使用了百分之多 少的时候,通过CMS进行FGC, 当然这个参数需要和这些参数一起使用“-XX:+ UseConcMarkSweepGC -XX:….