【问题标题】:Setting a heap memory above 4096MB on Karaf在 Karaf 上设置大于 4096MB 的堆内存
【发布时间】:2016-02-12 17:33:33
【问题描述】:

我正在使用需要大量内存的 java 应用程序,我希望能够将 JVM 的最大可用内存设置为 4096MB 以上的值,例如 8192MB。

我尝试使用以下参数:

wrapper.java.maxmemory

在 4096MB 阈值下似乎可以正常工作,但不能超过(它停留在 3.7GB 左右)。

我使用的是 64b JVM。

阻止我超过 4096MB 的代码在哪里?

【问题讨论】:

  • 您确定您使用的是 64 位 JVM?
  • 是的,java -version 返回 OpenJDK 64 位服务器虚拟机

标签: java jvm apache-karaf karaf


【解决方案1】:

不幸的是,wrapper.java.maxmemory 的限制在 Karaf 中使用的版本(wrapper.c,v3.2.3)中是硬编码的:

/* Maximum JVM memory */
maxMemory = getIntProperty(properties, "wrapper.java.maxmemory", 0);
if (maxMemory > 0) {
    maxMemory = __min(__max(maxMemory, initMemory), 4096);  /* initMemory <= n <= 4096 */
    if (strings) {
        strings[index] = malloc(sizeof(char) * (5 + 4 + 1));  /* Allow up to 4 digits. */
        sprintf(strings[index], "-Xmx%dm", maxMemory);
    }
    index++;
}

你应该使用wrapper.java.additional.1 = -Xmx8196m之类的东西

【讨论】:

  • 我在 karaf (wrapper.c) 的源代码中找不到这个文件,文件在哪里,什么项目?我在 github(官方)上照镜子,谢谢。
  • “包装器”与 karaf 无关。你可以在这里找到这个项目:wrapper.tanukisoftware.com/doc/english/download.jsp 我不认为源代码在 github 上。
  • 啊,我明白了,谢谢,否则使用附加.n 作品
猜你喜欢
  • 2011-11-13
  • 2022-12-15
  • 2014-06-08
  • 2019-06-08
  • 1970-01-01
  • 1970-01-01
  • 2015-05-12
  • 1970-01-01
  • 2018-04-14
相关资源
最近更新 更多