【发布时间】:2016-06-27 12:15:17
【问题描述】:
有一段时间我的 Java 应用程序出现性能问题,我使用 JavaMelody 进行分析,不寻常的是“已用内存”图表。它有很多短尖峰,似乎真的很快就达到了 ~8GB 线,然后,据我所知,GC 正在清理内存。是否有人有经验来跟踪这些峰值是什么意思?似乎他们指出了一些特定的问题。
GC和JVM配置为: -XX:PermSize=384m -XX:MaxPermSize=512m -XX:+UseCompressedOops -XX:+UseFastAccessorMethods -XX:+CMSClassUnloadingEnabled -XX:+UseParNewGC -XX:-UseParallelOldGC -XX:-UseAdaptiveSizePolicy -XX:幸存者比率=128 -XX:NewSize=4055m -XX:MaxNewSize=4055m -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=60 -XX:+UseCMSInitiatingOccupancyOnly -Xms12888m -Xmx12888m -Dsun.rmi.dgc.client.gcInterval=1800000 -Dsun.rmi.dgc.server.gcInterval=1800000
图表是(绿色是“平均值”,蓝色是“最大值”): Memory graph - 16:00 - 8:00 system without load, 8:00+ - system is under load
直到 8:00,系统没有负载。
8:00 之后它处于负载状态,但不是很大(约 20 次同时操作)
【问题讨论】:
标签: java memory-leaks garbage-collection