スワップパーティションやスワップファイルなしでLinux(Arch LinuxやDebianなど)をインストールするとどうなりますか?その後、オペレーティングシステムの実行中にRAMが枯渇すると、ユーザーは新しいアプリケーションを開きます。この新しいアプリケーションに実際に必要なものよりも多くのRAMメモリが必要な場合はどうなりますか?
オペレーティングシステムのどの部分がRAM管理タスクを処理し、異なる動作をするように設定できますか?
ベストアンサー1
Linuxカーネルには、OOM Killer(メモリ不足)というコンポーネントがあります。 Patrickがコメントで指摘したように、OOMキラーは無効にできますが、デフォルト設定は乱用を許可することです(したがってOOMキラーを有効にします)。
アプリケーションは、カーネルに対してより多くのメモリを要求し、カーネルは、メモリが不足しているか、プロセスでより多くのメモリを拒否するために使用されたため、ulimit
メモリを拒否できます。オーバーコミットが有効な場合、アプリケーションはいくつかのメモリを要求してその量を受け取りましたが、アプリケーションが(最初に)新しいメモリページに書き込み、カーネルが実際にメモリを割り当てる必要がありますが、そうすることができない場合、カーネルはメモリを解放します。するには、どのプロセスを終了するかを決定する必要があります。
カーネルは、以前のプロセスよりも新しいプロセス、特に大量のメモリを消費するプロセス(およびその子プロセス)を終了します。したがって、あなたの場合、新しいプロセスが開始される可能性がありますが終了する可能性があります。
このファイルを使用できます
/proc/self/oom_adj
/proc/self/oom_score
/proc/self/oom_score_adj
現在の設定を確認し、必要に応じてプロセスを終了する必要がある順序をカーネルに伝えます。