Linux OOM Killerを遅らせてプロセスを実行できますか?

Linux OOM Killerを遅らせてプロセスを実行できますか?

現在、私はQEMU / KVMを使用して仮想化された環境で仮想マシンの効率的な動的メモリ割り当てを作成しようとしています。

最後の問題は、ゲストVMのメモリがほとんど不足しているときにOOM Killerを使用し、メモリが不足しているすべての操作をブロックすることです。しかし、私がやっていることは、コンピュータのメモリがほとんど不足しているときに、私のアルゴリズムが別のゲストVMで利用可能なメモリを取得し、それを必要なコンピュータに割り当てることです。

だから、スワップを無効にし、ksmが実行されず、最後にOOMキラーが別のプログラムを終了したということです。

OOM Killerを無効にするために読んで検索した結果、無効にするのは悪い考えであることがわかりました。

ここで質問すると、私のアルゴリズムがすでにコンピュータにメモリを割り当てているので、OOM Killerを1〜2秒間遅延させ、プロセスを実行させる方法があります。

あるいは、メモリがなくてもプロセスを実行してメモリを割り当てることができるので、私のアルゴリズムはそのシステムにメモリを割り当てます。

答え1

あなたの質問を正しく理解したかどうかはわかりませんが、cgroupメモリ使用量を制限してメモリが不足している場合は、グループ内のすべてのプロセスを停止するメモリを使用したいと思います。その後、このグループ以外のプロセスを実行して実行する操作を決定し、メモリ制限を増やすことができます。

関連情報