簡體   English   中英

memory openj9 和 k8s 的管理問題

[英]memory management problems with openj9 and k8s

我們正在運行一個帶有一些 java 應用程序的 k8s 集群。 作為容器運行時,我們使用 cr-io 作為 jvm 采用 openjdk-16 openj9(應該有良好的容器支持)。

最近我們集群的工作負載增加了,我們注意到容器沒有釋放未使用的堆 memory。

我已經嘗試了一些 gc 選項來實現這一點,但沒有成功:

-Xtune:virtualized

-XX:+IdleTuningGcOnIdle -XX:IdleTuningMinIdleWaitTime=30 

-Xgc:concurrentScavenge

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/mnt/repository

我錯過了什么?

查看OpenJ9 用戶文檔 > Memory 管理 > 堆大小調整 > 擴展和收縮

這解釋了 OpenJ9 JVM 通過將分配的可用空間(在 GC 之后)的比率保持在由-xminf-xmaxf選項確定的范圍內來調整堆大小。 JVM如果堆太小會“急切”地擴容,但對於收縮堆就“勉強”。

因此,鑒於-xminf-xmaxf的默認設置,您觀察到的行為(堆沒有縮小)可能只是正常行為。 (您可以使用-XX+PrintFlagsFinal選項找出他們在做什么。)

請注意,HotSpot JVM 具有大致相似的調整堆大小的機制,盡管命令行選項不同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM