使用有限后,Hung Glassfish,GC?

时间:2013-06-12 12:16:11

标签: glassfish glassfish-3

我正在进行以下设置:

OS         CentOS release 6.4 (Final)
Memory     1024MB
CPU        1 × 2.4 Ghz @ 80%
Glassfish  GlassFish Server Open Source Edition 3.1.2.2 (build 5)

我知道这只是一个内存有限的小设置,但它应该足够了。

这是我的问题(我知道,已经有很多关于它的文章):

经过一些使用后,我的记忆似乎堵塞了。这会导致挂起的Glassfish meminfo显示类似于:

MemTotal:        1030772 kB
MemFree:          158488 kB
Buffers:            3204 kB
Cached:            16340 kB
SwapCached:         7100 kB
Active:           413424 kB
Inactive:         410252 kB

top显示:

PID  USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
2380 root      20   0  860m 658m 6028 S 99.8 65.4 170:58.30 java

结论

我的Glassfish服务器会在一段时间后使用所有资源。我不确定为什么CPU会被堵塞,尽管我怀疑这与垃圾收集有关。

我的问题是,如何防止这种情况发生?我应该配置我的GC,如果是,如何配置?

1 个答案:

答案 0 :(得分:1)

1024MB并非易事。我不知道你的应用程序在做什么,但这是一个值得尊敬的开始。

由于Java使用世代记忆模型,我建议您获取所有世代的动态图片:perm gen,eden等。

我喜欢Visual VM,安装了所有插件。它让我可以实时查看内存,线程,CPU,对象。试一试,看看它是否对你有所帮助。您需要的更多信息。