当前位置: 首页 > 面试题库 >

Java标志Xms和Xmx是否覆盖标志XX:+ UseCGroupMemoryLimitForHeap?

须原
2023-03-14
问题内容

我正在Kubernetes中运行一个容器化的Java应用程序。

为了使jvm保留根据容器规范的内存,-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap必须设置标志。

如果这两个标志与Xms和Xmx标志一起设置,那么jvm的行为是什么?一个标志会覆盖另一个标志吗?

例如,如果我们java -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -Xms -Xms2500M -Xmx2500M -jar myjar.jar
在一个容器中的容器中将请求限制为4Gi,将响应限制为4Gi,则在具有128Gi内存的主机中,JVM将保留多少内存?


问题答案:

-Xmx标志将覆盖-XX:+ UseCGroupMemoryLimitForHeap标志。

标志-XX:+ UseCGroupMemoryLimitForHeap使JVM可以检测容器中的最大堆大小。

-Xmx标志将最大堆大小设置为固定大小。

为了回答您的示例,JVM将保留2500M的堆空间。非堆和jvm的东西会有一些额外的内存使用情况。

要进一步调整容器中的内存使用量,可以使用-
XX:MaxRAMFraction标志。看到这篇文章:https :
//blog.csanchez.org/2017/05/31/running-a-jvm-in-a-container-without-getting-
killed/



 类似资料:
  • 问题内容: 我知道JVM进程的标志是允许JVM进程使用特定数量的内存来初始化其进程。而对于Java应用程序的性能,通常建议设置为两个相同的价值观和启动应用程序时,喜欢。 我很好奇,and 标志是否意味着JVM进程保留了特定内存量,以防止同一台计算机上的其他进程使用它。 这是正确的吗? 问题答案: 仅保留虚拟地址空间。 实际上分配(提交)它,但不一定要对其进行故障修复。 操作系统对分配的响应方式各不

  • 问题内容: 我在这里找到了JVM标志。关于它们的作用有更详细的解释吗? 问题答案: 设置此标志会将JVM进行的所有垃圾收集写入日志文件(或stdout,但它的用处不大),并且可以使用[此处](http://codingdict.com/questions/2045提到的工具进行分析。使用此信息,您可以微调垃圾回收配置。

  • 整个旗帜的事情让我很困惑。网络上的定义看起来很简单。对于这一切,我似乎找不到一个真正合适的解释。 根据它们的定义,-进位:表示无符号整数溢出-溢出:表示有符号整数溢出-零:由零产生的运算-符号:由负数产生的运算 那么下面的句子到底是怎么回事以下说明将设置符号标志:(这里的答案是252不是负数。那么为什么设置符号标志?) > 在8位寄存器中添加7Fh和05h设置溢出标志。(这里的答案是132。它不高

  • 问题内容: 有人可以编写可重现此Linux Shell命令功能的PHP脚本吗? 我想我的代码几乎可以理解它,但是我不确定如何处理该属性。 到目前为止,这是我的代码: 问题答案: 例如: http://code.google.com/apis/gdata/articles/using_cURL.html

  • 问题内容: 我的标志位有问题。我有一个变量来保存标志。首先,我为该变量设置了一些标志。稍后,我需要检查在该变量中设置了多少个标志。但是我不知道要这么做。 问题答案: 要检查是否设置了位值: 重要的是要注意,除非将其表示为All或None(并且不要使用按位逻辑进行比较;请使用),否则不应将其检查值为0,因为any 始终为0。

  • 既然我不想手动更新所有的定义文件,那么在JetBrains正式发布支持它的新版本之前(我已经在那里提交了一张罚单),有没有其他的方法来‘教导’WebStorm这个规则。