yutopp's blog

サンドバッグになりたい

鳥小屋で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程度になって無事動かせるようになった。


参考