Linux がなぜプロセスを強制終了するのでしょうか?

Linux がなぜプロセスを強制終了するのでしょうか?
  • Redhat Linux Enterprise Server 5.10 (古いのはわかっていますが、変更できません)
  • このマシンは VMTools を使用して仮想化されています。
  • この VM の合計メモリ: 32 GB。合計ディスク スワップ領域 (仮想メモリ): 36 GB。メイン ドライブに 900 GB が残っています。
  • ターミナルは Windows 7 上の Hummingbird Exceed v14 です。(どちらも変更できません。)
  • 私は本物のシステム管理者ではなく、マシン上でプログラムするだけです。そのため、ログがどこにあるのか、何を grep で検索するのかなど、より詳細な手順があると助かります。

スプレッドシートから 7000 行 (それほど大きくはありません) を読み取る特定のプログラムを実行しているときに、プロセスが強制終了され、ターミナルが消えることがあります。

  • OS がプロセスを強制終了する理由は何でしょうか?
  • この VM が常駐する物理サーバーは昨日非常に混雑していました。このサーバー上の他の VM がどれだけのメモリを使用していたかは誰にもわかりませんが、32 GB のメモリは私の VM 専用に予約されるべきではないでしょうか?
  • VMTOOLS は、メモリが少なくなるとすべての仮想マシンを調べて、ランダムに VM とランダムにリソースを消費する仮想マシンを選択して終了するのでしょうか? (私のプロセスは CPU 時間の 95 ~ 99% を使用していましたが、これも私の VM だけの問題だと思っていました。)

ありがとう。本当に困ってます。


編集 1: /var/log/syslog をチェックして、いくつかの種類の行を無視したところgrep -v、キックオフされたときに、リソースを大量に消費する cron ジョブが実行されているように見えました。それが起こったのだと思います。

さて、私の質問は、これらの cron ジョブが使用するメモリとスワップ領域を制限して、メモリが使い果たされず、ターミナルが強制終了されないようにすることはできるでしょうか? OS レベルで何かできることはありますか?


編集 2017 年 12 月 7 日: でさらに調査した結果top、メモリ、スワップ領域、ハード ドライブ領域を使い果たす心配はまったくありませんでした。したがって、何か他のことが起こっており、IT 部門が調査中です。

答え1

さて、私の質問は、これらの cron ジョブが使用するメモリとスワップ領域を制限して、メモリが使い果たされず、ターミナルが強制終了されないようにすることはできるでしょうか? OS レベルで何かできることはありますか?

はい。よく読んでください制限の設定(2). 使用したいulimit bash組み込み適切に。

注意してくださいメモリオーバーコミット

関連情報