1

我试图弄清楚如何增加 karaf 的 permgen 记忆。在 karaf 的启动脚本中,我看到有:

if not "%JAVA_PERM_MEM%" == "" (
    set DEFAULT_JAVA_OPTS=%DEFAULT_JAVA_OPTS% -XX:PermSize=%JAVA_PERM_MEM%
)
if not "%JAVA_MAX_PERM_MEM%" == "" (
    set DEFAULT_JAVA_OPTS=%DEFAULT_JAVA_OPTS% -XX:MaxPermSize=%JAVA_MAX_PERM_MEM%
)

我知道JAVA_PERM_MEMandJAVA_MAX_PERM_MEM是变量,但它们没有在启动脚本中的任何地方定义,除了这里。

karaf 正在现场机器上运行,所以我不想对其进行任何实验,我需要确定是否这样做:

if not "%JAVA_PERM_MEM%" == "" (
    set DEFAULT_JAVA_OPTS=%DEFAULT_JAVA_OPTS% -XX:PermSize=512M
)
if not "%JAVA_MAX_PERM_MEM%" == "" (
    set DEFAULT_JAVA_OPTS=%DEFAULT_JAVA_OPTS% -XX:MaxPermSize=1024M
)

会增加permgen内存吗?我需要这样做的原因是因为我不断得到:Caused by: java.lang.OutOfMemoryError: PermGen space

编辑:

karaf 上部署的所有包都与 spring 相关,它们有骆驼路由、cxf 端点、OpenJPA 持久性配置,所有这些都是通过 Spring 管理的。但我不认为有问题,因为据我所知,OutOfMemory PermGen 空间意味着所有部署的应用程序都没有足够的内存。如果有人知道问题可能出在哪里,那将非常有帮助。

4

1 回答 1

0

这些变量可能会从您的环境中读取,因此只需定义它们。

export JAVA_PERM_MEM...

关于 PermGen 异常,你可能会使用 spring DM 吗?或者一些与spring相关的osgi包?有几个问题。

于 2012-08-14T11:09:34.103 回答