GlassFishを用いて、Windows Server(64bit)にAPサーバを構築しようとしています。
- GlassFish4.1
- JDK1.8(32bit)
クラスタを10個ほど作成、インスタンスを定義。
それぞれにアプリケーションを配備して起動しようとすると、
クラスタの起動に失敗する。
- 5、6個のクラスタであれば起動可。
5、6個起動したあたりで、追加のクラスタ起動に失敗する。
起動順を変えても、全部のクラスタは起動できない。
0. 他のクラスタを停止した状態で、単体であればどのクラスタも起動可。
0. OSの物理メモリは16GBで、50%前後を推移している。
エラーメッセージ
JAVAのVMログ(インスタンス単体)
毎回、起動に失敗したクラスタは下記いずれかのようなログが出力されている。
OutOfMemory Log -------------------------------------------------------------------------------- pid=9752 heap_type=0 heap_size=117183120 max_heap_size=536870912 metaspace_size=50006648 max_metaspace_size=134217728 requested_size=1692008 -------------------------------------------------------------------------------- VM is terminated by occurred OutOfMemoryError on C heap.
Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit.
疑問点
Javaプロセス自体はインスタンスごとに立ち上がっており、
物理メモリが占有されていないのであれば他のクラスタの影響は受けないと思いますが、
GlassFish全体でメモリを管理するような設定があるのか。
試したこと
- CヒープでOutOfMemory対策
スレッドプールを最小の1に設定したが効果なし
- VMチューニング
VMオプションでheap(xms,xmx128m~1024m)やMetaspace(32m~128m)を指定して個々のクラスタの設定を変えてみたが、
特に効果なし
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。