2017-08-17 9 views
1

50ギガバイト私たちのマシンには100 GBのRAMがあります。 5 GB -XMX(ヒープサイズ)が設定されています。ハローキャストマップにデータをロード中に、メモリ不足例外が発生する。ヒープダンプを見て、RAMの代わりにヒープにデータが書き込まれています。ヒープの代わりにRAMにデータを書き込むためのヘイルキャストを設定するには? @ craigr8806としてHazelcastメモリストレージ

+0

ヒープは、あなたがあなたを増やす必要がRAM https://stackoverflow.com/questions/5276197/is-java-heap-space-dictated-by-ram-or-hard-drive?rq=1 ですヒープサイズ – CraigR8806

+0

サーバ上で他のプロセス/アプリケーションが実行されていない場合は、ヒープストレージ用の完全なRAMを利用してみてください。実行しているノードの数はいくつですか? –

+0

単ノード設定です – pppavan

答えて

3

はすでにJavaヒープがあなたのRAMである述べました。あなたが探しているのは、エンタープライズ機能で、オープンソース版では利用できない、オフヒープ実装のHDMS(高密度メモリストア)です。そうすれば、あなたは、例えば、75ギガバイトとnativeとしてin-memory-formatを使用するマップの最大にHDMS利用可能なスペースを構成します。このようにして、データはGC収集されたJavaヒープではなくHDMSに格納されます。

エンタープライズ機能であるため、別のjar(hazelcast-enterprise.jar)とライセンスキーが必要です。弊社のWebサイトで30日間の試用リクエストフォームを見つけることができます。

私は状況を明確にしたいと思っています:)あなたがHDMSについて話していないのならば、詳しく説明してください。

+0

ヒープと比べてオフ・ヒープからの書き込みや読み取り時に待ち時間が生じると思いますか? – pppavan

+0

オフヒープとオンヒープの間でデータをコピーする必要があるため、アクセスレイテンシが少し増加します。実際には、GCの処理量は少なくて済みますが、レイテンシはより一貫しており、そのため大部分は以前よりも「少なく」なります。 – noctarius

1

これは正常な動作です。すべて正常にヒープに入る。 -Xmx5を設定すると、最大ヒープサイズの制約が5Gに設定されています。どのように5GBに50GBを入れるつもりですか?

オフヒープ実装に関しては、アプリケーションがオンライン(対話型)処理かオフラインか、そしてあなたが本当にどれくらいのレイテンシを許容できるのか、私はまず尋ねます。オフラインで処理している場合は、レイテンシは重要ではありません。その場合、「世界のイベントを止める」ことは大きな問題ではないでしょう。