0

BDB JE に約 5 億 200 万行を挿入するマシンがあります。キーと値の例は次のとおりです。

juhnegferseS0004-47-19332   39694.290336

すべてのキーと値はほぼ同じ長さです。JVM は、次のパラメーターで開始されます。

-Xmx9G -Xms9G -XX:+UseConcMarkSweepGC -XX:NewSize=1024m -server

それでも、約 50,000,000 行に達すると、JVM は「強制終了」されます (「強制終了」というメッセージが表示されますが、どのように/誰によって強制終了されたのかわかりません)。ガベージコレクションを実行しようとすると、十分なメモリなどを解放できないと思います。しかし、その量の -Xmx があれば、問題はないと思います。

deferredWrites を使用しており、ログ ファイルのサイズは 100MB に設定されています。DPL から Base API に切り替えても違いはありませんでした。

JDK 6.0 と SUSE x86_64 を 12GB の RAM で使用しています。残りの RAM を必要とする他のプロセスがあるため、この挿入タスクに実際に 9GB 以上を割り当てることはできません。

JVM:

java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode)

この問題を解決するためのヒントをいただければ幸いです。

4

3 に答える 3

0

すべての状況に適した単一のソリューションはありません。さまざまなGCコレクターを試して、特定の状況でどれが最高のパフォーマンスを発揮するかを確認する必要があります。

于 2012-01-10T13:08:02.757 に答える
0

私はJVMが死ぬとは思っていません.おそらくバグのトリガーを回避できる場合。

私のもう 1 つの考えは、おそらく Linux OOM キラーの問題 (メモリのオーバーコミットに関連する) に遭遇しているということです。詳細については、この Serverfault の質問を参照してください。

于 2011-12-30T10:46:52.873 に答える