2017-06-12 8 views
1

アプリケーションは、特定のoom_scoreでOOM Killerを殺すと殺されてしまいます。 値セットに達した後にプロセスを強制終了するとき、または強制終了時にどのように決定するかについて、OOMに特定の値が設定されていますか?アプリケーションが殺された状態またはOOMスコア値での検索

固定値oom_scoreを使用すると、値を変更することができます。

OOMキラーが私のアプリを殺すときに、正確に何が起こっているのかを理解するためにOOMをどのように処理するかを詳細に説明できますか?

答えて

2

値セットに達した後にプロセスを強制終了するとき、または強制終了時にどのように決定するかについて、OOMに特定の値が設定されていますか?

いいえOOMキラーは、システムのメモリが不足している場合にのみ使用されます。それが起こると、最も高いOOMスコアでプロセスを強制終了します。スコアは、プロセスが使用しているメモリの量に基づいており、さまざまな経験則に基づいて調整されています。

一般に、OOMキラーがまったくアクティブ化されている場合、システムのメモリが少なすぎるか、プロセスが制御不能になっています。これは組み込み機器では決して起こらないはずです。これは何らかの問題の兆候です。

これらのことはすべて、/proc/$pid/oom_score_adjに値を書き込むことで、プロセスのOOMスコアを調整することができます。そのファイルの値がプロセスのOOMスコアに追加されるため、正の値を指定するとOOMキラーはそのプロセスをより頻繁にターゲットにする可能性が高くなり、負の値を指定するとOOMキラーはそのプロセスを回避します。

+1

私のアプリはOOMスコアが780になったり、Memの使用率が80%以上になったりすると、アプリケーションが強制終了されます。私のアプリが全メモリの80%以上を使用した場合にのみ、OOMがプロセスを終了させることを意味します。私がそれを設定する方法はありますか? – Reddy

+2

はい - デバイスにメモリを追加してください。それは記憶がありません。 *何かが行かなければならず、メモリの80%を使用しているプロセスが明白なターゲットです。 – duskwuff

関連する問題