2012-08-14 94 views
1

我想弄清楚如何增加karaf的permgen内存。在karaf的启动脚本中,我看到有:Apache Karaf启动脚本。如何设置更多的perm内存?

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_MEMJAVA_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束是春天有关,他们有骆驼的路线,CXF端点,OpenJPA的持久性配置都是通过Spring进行管理。但我认为没有问题,因为我知道OutOfMemory PermGen空间意味着没有足够的内存用于所有已部署的应用程序。如果有人知道哪里可能是问题,这将是非常有益的。

回答

0

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

export JAVA_PERM_MEM... 

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

+0

我编辑了我的问题,有春天相关的捆绑包部署到卡拉夫。 – 2012-08-14 11:15:24

+0

@PauliusMatulionis你可以尝试增加这个记忆,但通常是不够的。你可以告诉Java也GC这个内存。在SO – Eugene 2012-08-14 11:22:03

+0

谢谢你这里有这样的答案。我会尽力做到这一点。 – 2012-08-14 11:23:39