2

マシンの負荷が非常に高い場合、一部のサービス アプリはすべてのメモリを消費し、スワップも完全に使用される可能性があります。Linux は kill プロセス自体を開始します。通常、シェルは強制終了されており、その問題を見つけると画面が狂ったようにスクロールします。

マシンがメモリ不足になったときのログは次のとおりです(同様のエラーが繰り返され、画面がスクロールされます)

[11988288.358984] Mem-info:
[11988288.358987] DMA per-cpu:
[11988288.358992] CPU    0: hi:    0, btch:   1 usd:   0
[11988288.358997] CPU    1: hi:    0, btch:   1 usd:   0
[11988288.359002] DMA32 per-cpu:
[11988288.359006] CPU    0: hi:  186, btch:  31 usd: 171
[11988288.359012] CPU    1: hi:  186, btch:  31 usd: 180
[11988288.359019] Active:490848 inactive:2177 dirty:0 writeback:0 unstable:0
[11988288.359021]  free:3441 slab:3328 mapped:20 pagetables:0 bounce:0
[11988288.359032] DMA free:8084kB min:44kB low:52kB high:64kB active:1908kB inactive:1732kB present:16160kB pages_scanned:9935 all_unreclaimable? yes
[11988288.359041] lowmem_reserve[]: 0 2012 2012 2012
[11988288.359052] DMA32 free:5680kB min:5716kB low:7144kB high:8572kB active:1961484kB inactive:6976kB present:2060400kB pages_scanned:972601 all_unreclaimable? no
[11988288.359063] lowmem_reserve[]: 0 0 0 0
[11988288.359071] DMA: 13*4kB 16*8kB 16*16kB 17*32kB 25*64kB 29*128kB 1*256kB 1*512kB 1*1024kB 0*2048kB 0*4096kB = 8084kB
[11988288.359093] DMA32: 108*4kB 0*8kB 0*16kB 2*32kB 1*64kB 0*128kB 0*256kB 0*512kB 1*1024kB 0*2048kB 1*4096kB = 5680kB
[11988288.359112] 66 total pagecache pages
[11988288.359117] Swap cache: add 603678, delete 603677, find 189475/220048
[11988288.359123] Free swap  = 0kB
[11988288.359126] Total swap = 1048568kB
[11988288.372922] 526336 pages of RAM
[11988288.372937] 11131 reserved pages
[11988288.372942] 451075 pages shared
[11988288.372946] 1 pages swap cached
[11988288.372952] Out of memory: kill process 14767 (exim4) score 4076 or a child
[11988288.372998] Killed process 14767 (exim4)

私の質問

  1. メモリ不足のマシンを救出したい時、何かできることはありませんか?(マシンのリセットを除く)?
  2. Linuxカーネルをより強力にし、メモリ不足のときに生き続けるために、任意のシステム構成を設定できますか?
4

1 に答える 1

3

各プロセスの値を調整することで、OOM キラーがターゲットを選択するのを助けることができます。

echo some_value > /proc/pid/oom_score_adj

この値は、oom killer が次の被害者を選択するために計算したスコアに追加されます。負の値が使用されている場合に一部のプロセスを保護するために使用することも、逆に、プロセスが OOM キラーの標的になる可能性を高めるために使用することもできます。

于 2013-04-03T11:11:06.463 に答える