Javaのニーズをホストするためにvpsを購入しました。しかし、Javaを実行できません。Javaは正しくインストールされていますが、Java( "Java -version"など)を実行しようとすると、次のエラーが発生します:
VMの初期化中にエラーが発生しました
オブジェクトヒープ用に十分なスペースを予約できませんでした
Java仮想マシン。を作成できませんでした
これはJava中心の問題、メモリ不足です。確かにメモリ不足です。vps管理者に連絡しましたが、すべて問題ないとのことです。2GBのRAMがあり、4GBに拡張可能です。この件について少し検索しました。これが私のBEANSファイルです(スクリプトを使用して人間が理解できる形式に変換された数値)。ちなみに、JVMヒープメモリの割り当てはkmemsizeまたはprivvmpagesに依存しますか?単一のプロセスの場合?
resource held maxheld barrier limit failcnt
kmemsize 2.25 mb 2.35 mb 13.71 mb 14.10 mb 0
lockedpages 0 0 1024.00 kb 1024.00 kb 0
privvmpages 20.54 mb 21.33 mb 256.00 mb 272.00 mb 156
shmpages 5.00 mb 5.00 mb 84.00 mb 84.00 mb 0
numproc 13 14 240 240 0
physpages 9.36 mb 9.45 mb 0 MAX_ULONG 0
vmguarpages 0 0 132.00 mb MAX_ULONG 0
oomguarpages 9.36 mb 9.45 mb MAX_ULONG MAX_ULONG 0
numtcpsock 3 3 360 360 0
numflock 3 3 188 206 0
numpty 2 2 16 16 0
numsiginfo 0 1 256 256 0
tcpsndbuf 69.17 kb 69.17 kb 1.64 mb 2.58 mb 0
tcprcvbuf 48.00 kb 48.00 kb 1.64 mb 2.58 mb 0
othersockbuf 6.80 kb 6.80 kb 1.07 mb 2.00 mb 0
dgramrcvbuf 0.00 kb 0.00 kb 256.00 kb 256.00 kb 0
numothersock 9 10 360 360 0
dcachesize 0.00 kb 0.00 kb 3.25 mb 3.46 mb 0
numfile 704 746 9312 9312 0
numiptent 10 10 128 128 0
前もって感謝します!
スクリプトが生のbeancountersを正しく変換したかどうかを再確認してください。これによると、RAMは256メガバイトしかなく、管理者が言うように4ギガではありません。
2つの豆だけに集中する:
Javaは、メモリの塊を割り当てて、それを使用しないことで有名です。OSを頼りに overcommit 。私の経験では、JVMを確実に実行するには、少なくとも1ギガバイトのprivvmpagesが必要ですが、使用されるのは数十メガバイトだけです。
Javaを実行しているVEにprivvmpagesを実験して封じ込めようとした数か月後、私は個人的に諦めました。バリアを最大に設定し、oomguarpagesを適切に微調整して、最高のものを期待しています;)
VPSLinkでホストされていたときに同様の問題が発生しましたが、Sun/Oracle JVMはOpenVZでは機能しません(VPSLinkフォーラムで古いスレッドを検索して詳細を確認できます)。
結局、OpenVZコンテナーで私のために働いたのはIBM JDKだけでした。これは、 https://www.ibm.com/developerworks/Java/jdk/linux/download.html)で入手できます。
ただし、より良い解決策は、必要なJDKをインストールでき、OpenVZよりもはるかに頭痛の種が少ない専用サーバーに移行することだと思います。
試してみてください JRockit VM OpenVZ VPSで完璧に動作し、Sun/Oraclejvmよりもはるかに少ないメモリを消費します。