• 締切済み

swapを起こすとマシンフリーズの覚悟が必要か?

アプリケーションを動かすとき、実メモリの2倍くらいのメモリーを宣言したので、アプリ起動時にメモリー確保に行く為か、盛んにディスクIOします。ディスクIOが済んだら、あとは実メモリーのみで事足りるのか、快適に動作します。しかし時々、突然のマシンフリーズに見舞われます。メーカーの人に、重いSWAPが起こると、マシンフリーズは当然だと言われました。 これは本当でしょうか? 実メモリーは32G,HDDは1000G,SWAPパーティションは8G,RHEL4.0でカーネルは2.6.9です。

みんなの回答

  • notnot
  • ベストアンサー率47% (4896/10351)
回答No.2

64GBのメモリが必要なアプリケーションを、実メモリ32GB、スワップ8GBの環境で動かせば「メモリが足りないので指定のパラメータでは起動できない」というエラーメッセージを出して起動がエラーで停止するのが正しい動作です。 そうならないということは、指定が無視されて使えるメモリの範囲で動こうとしているんでしょう。それで快適ということなら起動オプションで30GB位を指定するのがいいと思います。 スワップが多発するとパフォーマンスは格段に低下して、補足にお書きのように処理でタイムアウトが発生して、いろいろと障害が起こる可能性があります。

hystory
質問者

お礼

ありがとうございます。 たしかにアプリケーションには4Gで充分でした。

すると、全ての回答が全文表示されます。
  • notnot
  • ベストアンサー率47% (4896/10351)
回答No.1

(必要メモリ量)-(実メモリ量)だけのスワップ領域が必要です。 質問の環境だと、利用できるメモリは40GBになります。OSや各種サービスの使用量も含めてですが。 >実メモリの2倍くらいのメモリーを宣言したので 具体的にはどういうことでしょうか? 自分で書いたプログラムで64GB程度の大きさの配列を宣言したということ?

hystory
質問者

補足

市販アプリケーションの起動オプションにメモリーサイズ指定があったのでこれを使いました。 質問文で、メーカの人が「フリーズ当然」と言った、と書きましたが、間違えました。正しくは、SWAP発生によりLANが切れたり、マウスとキーボードが反応しなくなるのは仕方が無い事で、これをフリーズだと勘違いしたのでは?と言われました。

すると、全ての回答が全文表示されます。

専門家に質問してみよう