jdk 8はこっそり1 Gメモリを占有して、あなたは知っていますか?
目次線上現象 検査ステップ 関連実験(ローカル) 再現現象 最適化案1 最適化案二 案三 まとめ せんじょうげんしょう
オンラインで起動し、莫名は1 Gシステムのメモリを多く消費します.
チェックステップ dumpメモリ、および分析、異常なし 総メモリ、jvm設定により、スタック外メモリ を占有することを決定する.
相関実験(ローカル)
ふくげんしょう
jvmパラメータの設定
jconsoleではcompressedClassSpaceが1 Gのメモリスペースを開いているのがわかりますが、実際にはそれほど使われていません
最適化シナリオ1
メタ空間サイズの設定
再度jconsoleで確認するとcompressedClassSpaceとMetaspaceの空間サイズが同じであることがわかりました
最適化シナリオ2
compressedClassSpaceを閉じる
or
UseCompressedClassPointersまたはUseCompressedOps compressedClassSpaceを閉じると閉じられます
シナリオ3
CompressedClassSpaceSizeサイズの設定
まとめ
オンライン上の現象に基づいて、ローカルで再現し、テスト、チューニングし、以上の3つのスキームを実験し、CompressedClassSpaceSizeのデフォルト1 Gサイズの問題を解決することができます.具体的なCompressedClassSpaceSizeはMetaspaceによって限定されるか、実際の状況に応じて計算されてサイズが限定されます.
オンラインで起動し、莫名は1 Gシステムのメモリを多く消費します.
チェックステップ
相関実験(ローカル)
ふくげんしょう
jvmパラメータの設定
-server
-Xms128m
-Xmx128m
jconsoleではcompressedClassSpaceが1 Gのメモリスペースを開いているのがわかりますが、実際にはそれほど使われていません
最適化シナリオ1
メタ空間サイズの設定
-server
-Xms128m
-Xmx128m
-XX:MetaspaceSize=128m
-XX:MaxMetaspaceSize=128m
再度jconsoleで確認するとcompressedClassSpaceとMetaspaceの空間サイズが同じであることがわかりました
最適化シナリオ2
compressedClassSpaceを閉じる
-server
-Xms128m
-Xmx128m
-XX:MetaspaceSize=128m
-XX:MaxMetaspaceSize=128m
-XX:-UseCompressedClassPointers
or
-Xms128m
-Xmx128m
-XX:MetaspaceSize=128m
-XX:MaxMetaspaceSize=128m
-XX:-UseCompressedOops
UseCompressedClassPointersまたはUseCompressedOps compressedClassSpaceを閉じると閉じられます
シナリオ3
CompressedClassSpaceSizeサイズの設定
-Xms128m
-Xmx128m
-XX:CompressedClassSpaceSize=256m
まとめ
オンライン上の現象に基づいて、ローカルで再現し、テスト、チューニングし、以上の3つのスキームを実験し、CompressedClassSpaceSizeのデフォルト1 Gサイズの問題を解決することができます.具体的なCompressedClassSpaceSizeはMetaspaceによって限定されるか、実際の状況に応じて計算されてサイズが限定されます.