鳥小屋でOpenJDK9を動かしたときのメモ
オンラインコンパイラにOpenJDK9を入れた後にハマったのでメモ
オンラインコンパイラの実行環境ではメモリリソースに制限をかけている(rlimit_asで1.5GB程度)ので、そのままのJVMの起動ではリソース不足で動かなかった。だいたいJVMが2GB使うようだったので微妙に足りない…。
結局解決できたので、そのオプションを書いておく。
Java8からPermGenというものがMetaspaceというものに変わったようなのでそこもチェックする。
まずヒープ
-Xms 64m
-Xmx 128m
スタック
-Xss 512k
Metaspace
-XX:MaxMetaspaceSize=128M
-XX:MetaspaceSize=64M
ここまで指定すると
"Could not allocate metaspace: 1073741824 bytes"
と遺してJVMが死んでしまう。
そこで、以下のようにオプションを指定したところエラーは発生しなくなった。
-XX:CompressedClassSpaceSize=32M
-XX:CompressedClassSpaceSizeのデフォルト値は1024Mであり、エラーの内容とも一致しているのでこれが原因のはず。
エラーの発生箇所がjdk8/awt/hotspot: 209aa13ab8c0 src/share/vm/memory/metaspace.cppだったので、この値を変えてみたのだけど、結局これはなんなのだろう…
とりあえず、これでJVMのメモリ使用量が1GB程度になって無事動かせるようになった。
参考
@yutopp -XX:MaxMetaspaceSize=<サイズ> ?
— Masanori Ogino (@omasanori) April 9, 2014