ホームページ  >  記事  >  バックエンド開発  >  Linux システムにおける JVM メモリの 2GB 上限の詳細な説明

Linux システムにおける JVM メモリの 2GB 上限の詳細な説明

高洛峰
高洛峰オリジナル
2017-01-23 10:10:541702ブラウズ

私たちが通常使用する JVM はすべて 32 ビットであり (64 ビット JVM はパフォーマンスが 10 ~ 20% 低下するため、通常は推奨されません)、32 ビット プログラムのアドレス空間は 4GB である必要があります。なぜ Linux 上で JVM が使用されるのか。メモリは2GBしか使えないの?

JDK R&D チームと連絡を取った後、最終的に関連する理由がいくつかわかりました。この問題は、一部の初期の Linux バージョン、特にカーネル 2.5 より前のバージョンに存在します。2.6 以降のバージョンには、基本的にこの問題はありません。これらの Linux バージョンにはプロセスのメモリ制限が 2GB あり、これは連続したアドレスを持つメモリ ブロックのサイズの上限であり、JVM のヒープ サイズには連続したアドレス空間が必要であるため、理論上の使用量は 2GB であることがわかりました。 Java プロセスのメモリ制限。

Java アプリケーションがより大きなメモリを使用する必要がある場合は、新しいバージョンの Linux を使用するか、Linux アプリケーションとカーネルのメモリ比率構成を 3GB:1GB に変更することをお勧めします。 Solaris などの UNIX オペレーティング システムを選択するオプションもあります。 Solaris などのオペレーティング システムでは、JVM メモリ管理に 2 GB の制限がないため、ヒープ サイズは約 3.5 ~ 3.6 GB に設定できます。

Linux システムにおける JVM メモリの 2GB の上限に関する詳細な説明については、PHP 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。