2016-10-13 21 views
0

メモリキャッシュソリューションのアドホックからWebアプリケーションを実行するjbossがクライアントノードとして機能し、2つの外部VMサーバーノードを点火する役割を果たします。java.lang.OutOfMemoryError:igniteクラスタのJavaヒープスペース

1つのクライアントノードと1つのサーバーノードでパフォーマンスをテストすると、すべて正常になります。しかし、1つのクライアントノードと2つのサーバーノードをクラスタでテストする場合、サーバーノードはOutOfMemoryErrorでクラッシュします。

それは-server -Xms1024M -Xmx1024M -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+UseTLAB -XX:NewSize=128m -XX:MaxNewSize=128m -XX:MaxTenuringThreshold=0 -XX:SurvivorRatio=1024 -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=60 -XX:MaxGCPauseMillis=1000 -XX:InitiatingHeapOccupancyPercent=50 -XX:+UseCompressedOops -XX:ParallelGCThreads=8 -XX:ConcGCThreads=8 -XX:+DisableExplicitGC

で単一ノード1が完全に同じテストを実行している作品ときに、2つのノードクラスタが失敗した理由を任意のアイデアを開始しています両方のノードの仮想マシン?

関連性があるかどうかはわかりませんが、テストはJBossサーバーに対して起動された10個の並列HTTPリクエストで構成され、それぞれが複数のエントリをCachéに書き込むプロセスを開始します。

答えて

0

最後に、問題は2つのノードで必要なメモリ量ではなく、ノード間の同期にありました。私のテスト用のcachéはPRIMARY_SYNCで実行されていましたが、クラスタ内のレプリケーションよりも速い場所で書き込み/読み取りが行われ、無限ループを引き起こした無矛盾な読み取りが発生しました。

FULL_SYNCに変更すると問題が解決しました。

0

ノード間の通信でオーバーヘッドが発生する可能性があるため、明らかに1GBでデータが不十分で、Ignite自体があります。一般的には1GBで十分ではありません。少なくとも2GB、ノードあたり4GBの容量を割り当てることをお勧めします。

関連する問題