8
LinuxでのJavaからの仮想メモリの使用、メモリが多すぎる
Linuxで実行されているJavaアプリケーションに問題があります。 デフォルトの最大ヒープサイズ(64 MB)を使用してアプリケーションを起動すると、アプリケーションに240 MBの仮想メモリが割り当てられていることがtopsアプリケーションでわかります。これにより、コンピュータ上の他のいくつかのソフトウェアでいくつかの問題が発生します。これは、比較的リソースが限られています。 予約された仮想メモリは、私が理解している限り、とにかく使用されませんOutOfMemoryError。ヒープの制限に達すると、スローされます。Windowsで同じアプリケーションを実行したところ、仮想メモリのサイズとヒープのサイズが似ていることがわかりました。 とにかく、LinuxでJavaプロセスに使用する仮想メモリを構成できますか? 編集1:問題はヒープではありません。問題は、たとえば128 MBのヒープを設定した場合でも、Linuxが210 MBの仮想メモリを割り当てるということです。 編集2:をulimit -v使用すると、仮想メモリの量を制限できます。サイズセットが204 MB未満の場合、204 MBは不要で64 MBしか必要ありませんが、アプリケーションは実行されません。だから私はなぜJavaがそれほど多くの仮想メモリを必要とするのかを理解したいと思います。これは変更できますか? 編集3:埋め込まれているシステムで実行されている他のいくつかのアプリケーションがあります。また、システムには仮想メモリの制限があります(コメント、重要な詳細から)。