当前位置: 首页 > 知识库问答 >
问题:

如何正确使用jvm-xx:maxram选项?[副本]

孔和风
2023-03-14

我使用以下参数运行java应用程序:

#!/bin/bash

export JVM_OPTS="-XX:MaxRAM=150m"
export JVM_OPTS="$JVM_OPTS -XX:+UseSerialGC"

java $JVM_OPTS -jar application.jar
    null

按照我的理解,我需要查看res参数。但在本例中,它大大超过-xx:maxram。在本例中,预计将发生OutofMemoryException。我做错了什么?如何为容器限制java应用程序的内存?我是否错误地查看了使用的进程内存?

我想最小化使用的RAM。OS-CentOS 7

共有1个答案

羊舌富
2023-03-14

-xx:maxram选项只影响默认堆大小。

Java进程使用的内存(从OS的角度来看)不仅包括Java堆,还包括许多其他东西。详见此答案。

 类似资料:
  • 我是Spring的新手。在@Bean方法中注入Bean的这两种方法有什么区别?我应该使用哪个,为什么? 而且

  • 以下是GAE灵活Java8/Jetty应用程序的app.yaml文件。 由于某种原因,部署应用程序时没有使用JAVA_HEAP_OPTS值。至少我不认为它被使用了,因为当我SSHdocker容器并运行以下命令时,内存值要少得多。 有人能告诉我发生了什么,或者我需要做些什么改变吗? 谢谢

  • 我有一个html选择选项 当我加载这个HTML时,我需要选择选项(基于从DB给出的数据)。 那么如何根据将分配给呢? 运行示例:http://jsfidle.net/o850tw9l/

  • 问题内容: 我正在尝试运行Java程序,但是它采用默认的GMT时区而不是OS定义的时区。我的JDK版本是1.5,操作系统是Windows Server Enterprise(2007) Windows指定了中央时区,但是当我运行以下程序时,它给了我GMT时间。 这是输出 请注意,我不想从应用程序中设置时区。我希望JVM使用的时区应该是操作系统中指定的时区。(对于具有JDK 1.4版和Microso

  • 背景:我正在对通过几层间接启动的Java应用程序进行一些性能测试,因此我不完全确定该应用程序是否以我认为的标志启动。我希望我的应用程序包括一个健全性检查(在开始其性能测试之前)并在结果(测试之后)中包含有关如何调整JVM的信息,例如: 使用了哪个垃圾收集器 Java代码是否有办法(在运行的JVM中)查询用于包含JVM的实际选项?(假设我看不到启动我的命令行,因此我无法重新解析这些标志。) 如果没有

  • 问题内容: 我试图使用命令行中的说明这篇文章。 似乎多数民众赞成在(https://wikis.oracle.com/display/HotSpotInternals/PrintAssembly)上可用。 如何在Oracle JDK7和JVM HotSpot中使用这些选项(或类似的选项)? 问题答案: 这些说明适用于Linux(Ubuntu 10.04.4 LTS),但应适用于您的OS。在下载Or