Linuxが応答しないのはなぜですか? [閉鎖]

Linuxが応答しないのはなぜですか? [閉鎖]

この問題システムが応答しないのはなぜですか?閉じる。答えは何が起こっているのか説明しますが、少なくとも80年代以降にこの問題が解決されなかった理由を理解することはできません。理論的な理由はありますか?

特に、ブラウザにタブが多い場合(FirefoxとChromeの両方で発生する)、目立つパフォーマンスを損なうことなくシステムがうまく機能しますが、新しいタブを開いたり別のブラウザを実行したりすると、HDDで継続的なノイズが発生し、マウス/キーボード入力応答これが遅すぎてコールドリブートをしたいです。この方法で10分を節約でき、白髪もたくさん減りました。

スワップを完全に無効にしましたが、同じことが起こりました。カーネルが物理メモリ制限に達した最初のプロセスまたは最大のプロセスを終了しないでください。

カーネルは、最速の回避策がコールドリブートである時点まで、どのプロセス(Firefox / Chromeはもちろん、バグがあるか悪意のあるプロセスでも)が応答しないようにしてはいけません。理由は何でも。なぜですか?ゴミを識別できませんか?ユーザーが再起動し、保存されていないデータを失い、手動ですべてのプロセスを終了させるのではなく、あまりにも「貪欲な」プロセスを自動的に終了する必要はありませんか?

SysRqキーの組み合わせとpkill(> 10分)について知っていますが、どちらも使用したくありません。この問題が自動的に解決されることを願っています。

私が興味を持っているのは、なぜこの問題がLinuxで解決されないのかということです。

答え1

スラッシング問題の解決策があります。プロセスユーザーごとにシステムリソースを自動的に制限するには、Linux(CentOSなど)でpam_limitsモジュール(limit.conf経由)を使用するか、FreeBSDでログインに似た関数データベースを使用できます(login.conf)。 1つのプロセスがすべてのリソースを占有する状況を回避するために、メモリ使用量、ファイルとプロセスの数、CPU時間などの一般的なリソースを制限できます。

通常、コンパイル時に設定されたカーネルリソースに加えて、デフォルトでは制限は設定されません。

Linuxで制御グループ(cgroup)を有効にすると、複雑さによるコストをより効率的に制御できます(例:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/resource_management_guide/ch01)

関連情報