1

しばらく作業した後、Java で記述されたアプリケーションが「強制終了」されました。

Java アプリケーションは、しばらく実行されている Linux で SH スクリプトから起動されます。その後、PIDが表示され、「殺された」という言葉が言いました。

このような:

runMyServer.sh: line 3: 3593 Killed         java -Xmx2024m -cp ...

システム ログにメモリ不足イベントに関する情報があります。そのため、メモリ不足エラーのようです。

私の質問は: OutOfMemroyError 例外が生成されないのはいつですか?

4

2 に答える 2

2

システムのメモリが少なすぎるか、すべての RAM とスワップを消費するプロセスを実行している可能性があります。GNU/Linux がメモリ不足になると、多くのメモリを使用しているプロセスが強制終了されます。これは基本的にプロセスを強制終了するだけなので、メモリ不足になっているのは Java プロセスではなく、OS です。

于 2012-06-25T20:09:42.433 に答える
0

Java アプリケーションが OOM キラーによって強制終了されないようにするには、システムに十分なスワップを追加し、メモリのオーバーコミットを無効にします。

dd if=/dev/zero of=/swapfile bs=1M count=2048
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo "/swapfile               swap                    swap    defaults        0 0" >> /etc/fstab
echo 2 > /proc/sys/vm/overcommit_memory
于 2012-06-25T21:15:22.283 に答える