Javaの旗のXmsおよびXmxの上書きフラグXXを行います:+ UseCGroupMemoryLimitForHeapを?

ディミトリオス:

私はKubernetesにおけるコンテナのJavaアプリケーションを実行していますよ。

コンテナの仕様に応じて、JVM予備のメモリを作るために、フラグが-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap設定されなければなりません。

それらのフラグの両方がのXmsおよびXmxのフラグと一緒に設定されている場合は、JVMの振る舞いは何でしょうか?他に上書きさ1つのフラグですか?

たとえば、私たちが持っていた場合はjava -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -Xms -Xms2500M -Xmx2500M -jar myjar.jar、コンテナとポッドに応答のための要求と4Giため4Giを制限し、128Giメモリを持つホストマシンで、どのくらいのメモリは、JVMの準備でしょうか?

クリス:

+ UseCGroupMemoryLimitForHeapフラグ:-Xmxフラグは-XXが上書きされます。

フラグ-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/を

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=171901&siteId=1