在Apache Karaf下设置Java堆大小

Ton*_*ony 9 java heap apache-karaf

如果这是重复的话,我道歉,但我似乎无法在任何地方找到答案.

使用Apache Karaf时增加最大Java堆大小的最佳方法是什么?

目前,我修改了karaf.bat文件中的以下行:

set DEFAULT_JAVA_OPTS=-server -Xmx<NewMaxValue>M.

我觉得修改bat文件不是最好的解决方案.此外,没有一个配置文件似乎有地方放这个.

谢谢

el.*_*omo 8

(至少)在karaf 2.2.10中:

如果运行karaf通过 bin/start

正如Ford Guo指出的那样,可以在bin/setenv文件中配置内存值:

export JAVA_MIN_MEM=256M # Minimum memory for the JVM
export JAVA_MAX_MEM=1024M # Maximum memory for the JVM
export JAVA_PERM_MEM=128M # Minimum perm memory for the JVM
export JAVA_MAX_PERM_MEM=256M # Maximum memory for the JVM
Run Code Online (Sandbox Code Playgroud)

如果运行karaf作为服务(karaf-service)

在这种情况下,任何导出的变量似乎都会被忽略.

可以在以下位置定义最大Java堆大小etc/karaf-wrapper.conf:

# Maximum Java Heap Size (in MB)
wrapper.java.maxmemory=1024
Run Code Online (Sandbox Code Playgroud)


Ton*_*ony 7

更新到Karaf 2.2.3会显示一个新的bat文件.

if "%JAVA_MIN_MEM%" == "" (
    set JAVA_MIN_MEM=128M
)

if "%JAVA_MAX_MEM%" == "" (
    set JAVA_MAX_MEM=512M
)

if "%JAVA_PERM_MEM%" == "" (
    set JAVA_PERM_MEM=16M
)

if "%JAVA_MAX_PERM_MEM%" == "" (
    set JAVA_MAX_PERM_MEM=64M
)
Run Code Online (Sandbox Code Playgroud)

这意味着可以只创建一个系统变量而不是修改bat文件.