まず、あなたは32ビットOSあなたはこの多くのアドレス空間の圧力を持っています。 64ビットLinux上の64ビットJVMに移行する。あなたは最初から疑われている必要があります。この問題は、64ビットシステムのより大きなアドレス空間を離れて行くだろう診断しようとしてすでにどのくらいの時間を無駄にしていますか?
第二に、うまく、すべてのLinuxベンダーのRed Hatは、スタッフのほとんどのカーネルエンジニアを持っており、彼らのRHEL製品のカーネルのためにいくつかの深刻なひねりを作ることが知られています。これらには、あなたのような大きなワークロード用のパッチが含まれていることがよくあります(32ビットシステムでは大きな負荷ですが、64ビットでは特別なものはありません)。だからこそ、RHELには他の顧客があなたと同じクレイジーなことをしており、その顧客をサポートするための仕事から利益を得ている理由があります。
最後に、32ビットSuSEでこれを実行する方法を見つけようとしていると思うので、Linuxは32ビットx86上でさまざまなアドレス空間のトレードオフを提供すると指摘しますあなたのSuSEシステムでは、異なるトレードオフが選択されている可能性があります(しかし、それは確かではありません)。実行しているカーネルの設定を(通常は/ boot/config ...で)行うことができれば、HIGHMEMのような設定を比較することができます。
従来のオプションは数年前に2:2に分割されました。つまり、ユーザー空間は2GiBのアドレス空間に制限されています。プログラムの簡単な解決策ですが、効率は良いですが、このシナリオでは、最近では、OSカーネル自体を犠牲にしてユーザー空間のアドレス空間を拡張する3:1(Windows/3GBスイッチに似ています)という傾向がありました。潜在的にそれ自身の問題を引き起こすより少ないスペース。これはうまくいくかもしれませんが、それは非常に窮屈なので、あなたの仕事でうまくいかないと私は驚かないでしょう。最後に、より新しいLinuxカーネルは、4GiB 32ビットのユーザースペースを得るオプションも提供します。これは、ユーザースペースとカーネルアドレスが共存できないため、パフォーマンスを大幅に向上させます。
これを試すには、新しいカーネルが必要です。 SuSEで提供されているものをインストールすることもできます(たとえば、「PAE」オプションなど)。自分でコンパイルする必要がある場合は、サポート契約が無効になっている可能性があります。
しかし、実際には、オプション1を使用して64ビットJVMに切り替えるだけで足を伸ばす必要があります。
説明のためにありがとう。アロケーションビットは意味があり、それを説明するかもしれません。それまで私がレッドハットに移行していたのですが、私たちの会社はSuSEに切り替えました。そのため、私たちの新しいマシンはすべてSuSEです:(最大ヒープサイズを落とすことについては、しかし、現時点では可能ではありませんが、私たちのメモリ使用量を減らす計画があります。 – Randyaa