【发布时间】:2016-07-19 22:14:20
【问题描述】:
我有一个在 Jboss 5.1 中运行的应用程序,它每隔一周就会出现性能问题,我们必须重新启动应用程序以使其恢复正常。上图是在应用程序在高峰时段运行时捕获的。在查看其他领域(如基础设施和网络)之前,我试图从应用程序的角度了解是否有改进的余地
Graph generated through jvisualvm which shows heap usage
这里是堆大小设置 我有这个应用程序
JAVA_OPTS="${JAVA_OPTS} -Xms3072m -Xmx6144m -XX:PermSize=512m -XX:MaxPermSize=2048m -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Dsun.lang.ClassLoader.allowArraySyntax=true "
JAVA_OPTS="$JAVA_OPTS -verbose: gc -Xloggc:/test/log/gc.log -XX: +PrintGCDetails -XX:+PrintGCDateStamps"
- 为什么,从图中,应用程序甚至只使用了 3G 内存 虽然我给了 6G 作为最大内存?
- 我的 GC 设置是否正确?我可能从不同的地方复制了 服务器,我如何确保我有正确的 GC 设置 申请?
- 如果我从 设置它如何确定何时必须运行 GC?
- 上次我们不得不重新启动应用程序时,我进行了堆转储,并且 在 jvisualvm 中加载它,但我不知道在堆中寻找什么 转储(我不是开发人员)有人可以告诉在堆中寻找什么 转储以及如何改进它
- 我们还能做些什么来改进应用程序 我们在图表和 GC 设置中看到的性能
【问题讨论】:
标签: java garbage-collection jboss5.x heap-size