Tips:容器中JVM内存设置参数的最佳实践

 2024-02-27 03:04:08  阅读 0

参考:最佳:Java for - DZone Java

长话短说

简而言之,容器内部有3组参数来设置JVM的最大堆内存

-XX:, -XX:-XX:, -XX:-Xmx

应该如何使用呢?

参数设置怎么设置_was jvm参数设置_参数设置是什么意思

1 -XX:、-XX::支持的版本:仅Java 8 131到Java 8 190

限制:

同时需要设置参数-XX:+ -XX:+,表示JVM会根据容器的内存设置来分配最大堆内存。 否则,将根据主机的内存分配最大堆内存。 -XX:只能识别整数。 设置,如果设置了-XX:=2.5,JVM将无法启动。 后续的JDK版本将不再支持。

例子:

如果容器分配1GB内存并设置-XX:=2,则JVM的最大堆内存分配约为最大可用内存的1/2(约512G)。

2 -XX:、-XX:支持的版本:Java 8 191及以上版本。

-XX:+ 该参数在这些支持的版本中已经默认启用,不需要显示。

限制:不支持旧版本

例子:

如果容器分配1GB内存并设置-XX:=50,则最大JVM堆为1GB*50%

3-Xmx:

直接设置JVM的最大堆内存值

支持版本:全部

限制:

如果直接使用-Xmx设置最大堆内存,当JVM内存超过容器的内存限制时,就会遇到OOM或者直接被kill掉。 实用建议:无论你如何设置最大堆内存,记住至少留出25%或更多的内存。 ,因为JVM运行时不仅有堆内存,还有各个线程的堆栈、本地内存等内存消耗。 如果容器中只有一个Java应用程序运行,请将初始堆大小和最大堆大小设置为相同,以避免JVM扩展。 导致 JVM 暂停。如果初始内存设置的内存超过容器限制,JVM 甚至不会启动,从而在第一时间发现问题

标签: 内存 容器 设置

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码