Answers:
Debian错误666021似乎是同一问题的报告。的建议是:
#change value for this boot
sysctl -w vm.min_free_kbytes=65536
#change value for subsequent boots
echo "vm.min_free_kbytes=65536" >> /etc/sysctl.conf
http://russ.garrett.co.uk/2009/01/01/linux-kernel-tuning/讨论了何时更改此设置可能有用,请在此处复制:
这告诉内核尝试始终保持64MB的RAM可用。它在两种主要情况下很有用:
无交换机器,您不希望传入的网络流量淹没内核,并在OOM有时间刷新任何缓冲区之前强制执行OOM。
出于相同的原因,x86机器也是如此:x86体系结构仅允许在大约900MB RAM以下的DMA传输。因此,您可能会遇到大量带有可用RAM的OOM错误的怪异情况。
我在3.2.12-gentoo x86机器上应用了此设置,但仍然遇到这些错误。
echo 104857600 > /proc/sys/vm/min_free_kbytes
导致我的系统重现内核。在我不希望阅读的过程中,屏幕上弹出了不少文字,但是最后一条消息与我的Wi-Fi加密狗有关,因此这种损坏可能是我的系统特有的。话虽这么说,小心一点。
我刚刚在运行Debian 5和内核2.6.39.3 64位的Lenovo NAS上解决了此错误。
根据https://www.novell.com/support/kb/doc.php?id=7002803,该消息尽管看起来很吓人,但仍具有参考性。
但是,他们正在填充我非常有限的根分区(此设备具有50 MB的根分区?!)
对我来说,解决方法是vm.min_free_kbytes
从65536
低到高16384
。
之后,操作系统仍然具有107 MB的可用内存和2 GB的缓冲区。这没有任何意义,但是它停止了所有日志记录。
也可能值得检查vm.zone_reclaim_mode
:请参阅http://www.kernel.org/doc/Documentation/sysctl/vm.txt