我不希望我的计算机将数据交换到磁盘。我没有交换分区:
美元免费
缓存的已用空闲共享缓冲区总数
电话:3841912 3670012 171900 0 74980 699652
-/+ 缓冲区/缓存:2895380 946532
交换:0 0 0
回到当天(也许最近是内核 2.4?)这曾经有效。内存饥饿的进程将被 oom 杀手杀死,我会重新启动它们。但是现在(Linux 2.6.38-8-generic #42-Ubuntu SMP Mon Apr 11 03:31:24 UTC 2011 x86_64)google-chrome(13.0.782.24 beta)定期将我的机器发送到交换的死亡螺旋中。或者至少感觉像是交换的东西:X 窗口需要永远更新,磁盘驱动器嗡嗡作响,gnome 面板内存图表达到顶峰,我在系统日志中看到以下消息:
rtkit-daemon[1771]:金丝雀线程显然正在挨饿。采取行动。 rtkit-daemon[1771]:降级已知的实时线程。 ...
但是,根据 syslog,内核并没有运行 oom 杀手。为了更好地衡量,我将swappiness设置为0:
$ cat /proc/sys/vm/swappiness 0
我的解决方法是在这种情况开始发生时使用 ctrl-alt-sysrq-f。在这种情况下,有人有将 Linux 配置为自行运行 oom_kill 的秘诀吗?