Iました次のJVM引数を指定してJavaアプリケーション実行されているコンテナ:ドッカーは統計100%メモリ
docker run -it -m 2304m foo bash
がdocker stats myApp
を実行している:私はドッキングウィンドウのメモリ制限オプションを使用してい
-XX:+UseG1GC -Xms512m -Xmx2048m -XX:MaxPermSize=256m
をコンテナの初期化の直後に私は:
CONTAINER CPU % MEM USAGE/LIMIT MEM % NET I/O
myApp 0.17% 660.5 MB/2.416 GB 27.34% 240.8 kB/133.4 kB
しかし、数時間後に私はlowing統計:
CONTAINER CPU % MEM USAGE/LIMIT MEM % NET I/O
myApp 202.18% 2.416 GB/2.416 GB 100.00% 27.67 GB/19.49 GB
私はコンテナ内で実行中のアプリケーションのプロセス実行の詳細に見てみると、私は~735MB
の使用を持っているとて、myAppは何の問題もなく要求を計算するために続けて、けれども:
[email protected] ~]$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
me+ 1 0.0 0.0 11636 1324 ? Ss 13:44 0:00 /bin/bash /home/bar/service/start-myApp.sh
me+ 6 113 4.5 5014152 735736 ? Sl 13:44 438:46 java -XX:+UseG1GC -Xms512m -Xmx2048m -XX:MaxPermSize=256m -jar myApp-service-1.0-final.jar
me+ 481 0.0 0.0 11768 1820 ? Ss 20:09 0:00 bash
me+ 497 0.0 0.0 35888 1464 ? R+ 20:10 0:00 ps aux
私はjconsoleを使ってプロセス6
を監視しています。
なぜコンテンツが必要でない場合、すべてのメモリを使用しているのですか? 私はドッカーがmyAppより少し多くのメモリを使用すると予想しました...利用可能なメモリの100%ではありません。
言う-XX:+UseG1GC -Xms512m -Xmx2048m -XX:MaxPermSize=256m
、また、0.25ギガバイトのpermgenヒープを0.5GBから始まり、2ギガバイトに成長することができ、およびヒープを使用します。
Java 1.8を使用する場合、 '-XX:MaxPermSize'を' -XX:MaxMetaspaceSize = 128m'に置き換える必要があります。 – loretoparisi
真...質問と私の回答の接線 –
はい、私はそれを解決しようとしていたので、私はそれを見つけましたが、JVMはそれが廃止されたと訴える... – loretoparisi