0

我正在处理以下设置:

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,如果是,如何配置?

4

1 回答 1

1

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

由于 Java 使用分代内存模型,我建议获取所有代的动态图:perm gen、eden 等。

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

于 2013-06-12T12:21:04.283 回答