プロセスが終了した後、なぜシステムがハング/スローするのですか?


2

私のOSはUbuntu 12.10 64ビットです。私はこの問題を長い間経験してきましたが、それ以前のすべてのバージョンのUbuntuでも同様です。すべてのメモリを占有して終了したときにプロセスを起動した場合、コンピュータはまだ麻痺しています。つまり、プロセスを開始する前の速度ほど速くはありません。

それは一般的なシナリオであり、それに抵抗/治癒するために何ができるでしょうか?

回答:


2

まず、あなたはおそらくすべてのメモリを占有するプロセスを実行するべきではありません。

これが起こる理由は原因です swap space

アナロジータイム

バスがあります。このバスは、バスの内側に「優先」座席があり、屋根に「オーバーフロー」座席があります。好みの席がすべて揃っていて、まだバスに乗る必要がある場合にのみ、人々は屋根の上に座ります。

このバスには以下のユニークなものがあります。 プロパティ

  • 座席は非常に小さいです。平均的な人は、席の数が多いでしょう。子供の場合は2〜4人、大人の場合は8〜10人、40人もいるでしょう。
  • バスに乗車または下船するのに必要な時間は、優先席の人々にとってオーバーフロー席よりも20倍高速です。

また3つあります 文化的ルール このバスについて:

  • 1つのルールは、バスに乗ったばかりの人は、以前にバスに乗ったことのある人を「ぶつける」ことができます。誰もがこの振る舞いに慣れているので、それはいかなる戦いや誤解も引き起こしません。それは文化のほんの一部です。
  • 2番目のルールは、バスがいっぱいの場合、誰かが完全にいっぱいのバスに乗ろうとしたときに、バスの最も多くの座席を占めている人がすぐに出発しなければならないということです。
  • 3番目のルールは、優先席が利用可能になるたびに、オーバーフロー席にいる可能性がある誰かがすぐに屋根から上がって優先席に座るために降りることです。

今、あなたがすべての好みの席を埋めると想像してください。その後、より多くの人々がバスに乗りたいと思っています。だから誰かがバスに乗ると、すべての好みの席が取られるので、文化的慣習により、彼らは好みの席に座っている人に屋根まで登ることを強制します。このプロセスは、屋根のオーバーフローシートまでいっぱいになるまで繰り返すことができます。

すべての優先席とオーバーフロー席がいっぱいになると、どうなりますか?最大の人はバスから降りなければなりません。彼らが去るときに彼らが優先席にいるならば、彼らはすぐに去ることができます。しかし、小さい人(または複数の人)は、規則によって、利用可能な優先席に座るために屋根から降りることができます。

さて、この類推を現実に当てはめると、「オーバーフローシート」はハードディスクドライブのスワップスペースであり、「優先シート」はRAMです。バスの規則はかなりきれいに適用されます。

「大人数」(大量のRAMを占有するプロセス)が殺されると、システムはスワップスペース(オーバーフローシート)にあったプロセスをRAM(優先シート)に戻します。これは、優先席からバスに乗船して降りる方がはるかに高速であり、人々は常に乗降するため、人々が乗降する間、長時間停止する必要はないためです。屋根から。

仮想メモリオペレーティングシステムは常に可能な限り多くのRAMを消費します。最も優先度の高い使用法は、これらのRAMセグメントをアクティブに実行してアクセスしているプログラムから実際にマップされたデータ用です。中優先度の使用法は、アクティブに実行されていないプログラムのマップページ用です。最も優先度の低い使用法は "ページキャッシュ"で、これは基本的にあなたのハードディスクドライブの最も頻繁にアクセスされるファイルのキャッシュです。

システム上のほとんどのプログラムは、すべてのRAMを占有するものを除き、大きなプログラムがすべてのRAMを占有するとスワップスペース(オーバーフローシート)に移動します。したがって、大きなプログラムを終了すると、すべてが移動し始めます。デスクトップが反応し続けるようにRAMに戻します。この転送が進行している間は、非常に遅いのでシステムは停止します。仮想メモリマネージャからのI / O要求とアプリケーションからのI / O要求の負荷を分散する必要があるためです。これがなぜ起こるのかについてのより技術的な定義です。

「治療法」は3つあります。

  • 優先順位1:RAMをもっと購入する。これはできます あなたを傷つけない そしてできます あなただけを助ける 。あなたがお金を持っていて、あなたのマザーボードがもっと多くのRAMを保持する能力を持っているならば、それをしてください。
  • 優先度2:すべてのRAMを占有するようなプログラムを実行しないでください。
  • 優先度3:スワップパーティションのサイズを小さくするか、完全に削除するか、またはより高速のハードドライブ(SSDなど)を購入する。

ありがとう、いい答え。そのため、以前のプロセスをRAMにプッシュしてスワップスペースが解放された場合、システムは元の状態(速度)に戻るか、常に完全に回復できないという意味である程度の損失が生じます。
Sukhdeep Singh

ページがスワップからRAMに戻されると、時間が経つにつれて回復します。
allquixotic
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.