web-dev-qa-db-ja.com

Linuxをスラッシュせず、プロセスを強制終了するにはどうすればよいですか?

Firefox(およびフラッシュ)はランダムな時間にメモリをかみ砕く傾向があり、コンピュータがクラッシュする原因になります。これにより、oom_killerが起動してプロセスを強制終了するのを待って、私は夢中になります[1]。 。スワップを無効にしましたが、それが悪化しました。それは何かを殺す前に何時間もぶつかります、そしてそれは意味がありません。キャッシュの大きなチャンクをフラッシュして続行しないのはなぜですか?

キャッシュを無効にできますか?スラッシングを止めさせることはできますか?メモリが不足したときに最大のメモリホッグを死なせたいだけです。

[1]実際にはFirefoxをターゲットにしておらず、代わりにXまたはデスクトップ環境を強制終了することを忘れないでください。

5
Jayen

キャッシュを定期的に削除してください。そうすれば、プロセスが少量のメモリを要求するときに、コンピュータが一度に小さなビットをキャッシュするのに忙しくなりません。コンピュータ全体の速度が低下しますが、少なくとも、フラッシュがあなたを生きたまま食べたときにコンピュータがクラッシュするのを待つことはありません。

while sleep 30; do vmstat && echo 3 > /proc/sys/vm/drop_caches && vmstat; done


Nov 11 10:40:59 eeyore kernel: [604280.360966] icedove-bin invoked oom-killer: gfp_mask=0x201da, order=0, oom_adj=0, oom_score_adj=0
Nov 11 10:40:59 eeyore kernel: [604280.606183] Out of memory: Kill process 12767 (firefox-bin) score 325 or sacrifice child
Nov 11 10:40:59 eeyore kernel: [604280.607749] Killed process 12914 (plugin-containe) total-vm:187036kB, anon-rss:14488kB, file-rss:0kB
Nov 11 10:41:23 eeyore kernel: [604305.020890] Xorg invoked oom-killer: gfp_mask=0x201da, order=0, oom_adj=0, oom_score_adj=0
Nov 11 10:41:24 eeyore kernel: [604305.096299] Out of memory: Kill process 12767 (firefox-bin) score 325 or sacrifice child
Nov 11 10:41:24 eeyore kernel: [604305.096308] Killed process 482 (plugin-containe) total-vm:61124kB, anon-rss:2420kB, file-rss:0kB
Nov 11 10:41:30 eeyore kernel: [604311.107726] python invoked oom-killer: gfp_mask=0x201da, order=0, oom_adj=0, oom_score_adj=0
Nov 11 10:41:30 eeyore kernel: [604311.531604] Out of memory: Kill process 12767 (firefox-bin) score 325 or sacrifice child
Nov 11 10:41:30 eeyore kernel: [604311.533284] Killed process 12767 (firefox-bin) total-vm:1388764kB, anon-rss:659040kB, file-rss:0kB
1
Jayen