较为彻底禁用OOM的方法(但系统可能会出现异常):
方法见2楼
但我还有些疑问:
4.5内核如何禁止Linux的OOM Killer?zram交换设备还有很多空闲空间,就被kill了
通过dmesg确认,确实发生了OOM被kill的进程总是iceweasel(firefox)
内核版本:
代码: 全选
Linux debian 4.5.0-0.bpo.1-686-pae #1 SMP Debian 4.5.1-1~bpo8+1 (2016-04-20) i686 GNU/Linux
我在4.5内核试过vm.overcommit_memory=1,vm.overcommit_memory=2
vm.overcommit_ratio=100
都没用,还是被kill
测试环境内存用的是192M
即"mem=192M memmap=0M@192M"参数引导内核
Thu May 5 07:42:15 CST 2016补充:
同样的测试环境,3.16内核我现在还能用iceweasel(firefox)打开天气预报网页不关闭,然后打开本论坛编辑本帖
但是4.5内核,几乎只要打开iceweasel(firefox)就被kill
代码: 全选
# swapon
NAME TYPE SIZE USED PRIO
/dev/zram0 partition 182.7M 50.3M 10
/dev/zram1 partition 182.7M 50M 10
/home/username/swap_single file 4G 66.8M -1
貌似代价不算太大
当然,大型系统,数G内存这么干肯定就不行了
或许可以分割成小块的zram设备去swapoff?(注意要在内存不足时去swapoff,才能把zram中的老页面"挤"到硬盘中的swap设备去?)
不过我也不确定,也许被"挤"到硬盘的是热页面
但不管怎么说,在我这个测试环境下,接近卡死时swapoff zram设备确实能起到不错的效果.