Hacer banderas java Xms y -Xmx bandera de sobreescritura XX: + UseCGroupMemoryLimitForHeap?

Dimitrios:

Estoy ejecutando una aplicación Java en contenedores en Kubernetes.

Con el fin de hacer la reserva de memoria JVM de acuerdo con las especificaciones del envase, las banderas -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeapse deben establecer.

Si ambas banderas se establecen junto con Xms y banderas Xmx, ¿cuál sería el comportamiento de la JVM ser? Realice una bandera sobrescribir el otro?

Por ejemplo, si tuviéramos java -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -Xms -Xms2500M -Xmx2500M -jar myjar.jaren una vaina con los límites de contenedores 4Gi para solicitudes y respuestas para 4Gi, en una máquina host que tiene memoria 128Gi, la cantidad de memoria haría la reserva JVM?

Chris:

La bandera -Xmx sobrescribe el -XX: + bandera UseCGroupMemoryLimitForHeap.

La bandera -XX: + UseCGroupMemoryLimitForHeap permite la JVM detectar cuál es el tamaño máximo de almacenamiento dinámico en un recipiente debe ser.

La bandera -Xmx establecer el tamaño máximo de almacenamiento dinámico a un tamaño fijo.

Para responder a su ejemplo, la JVM se reservará espacio 2500M montón. Habrá un poco de uso de memoria adicional para no montón y cosas JVM.

Para ajustar aún más el uso de la memoria en un contenedor que podría utilizar el -XX: bandera MaxRAMFraction. Ver este artículo: https://blog.csanchez.org/2017/05/31/running-a-jvm-in-a-container-without-getting-killed/

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=171904&siteId=1
Recomendado
Clasificación