据我了解,当系统接近没有可用内存时,内核应该开始杀死进程以重新获得一些内存。但在我的系统中,这根本不会发生。
假设一个简单的脚本只分配了比系统中可用内存多得多的内存(例如,一个包含数百万个字符串的数组)。如果我运行这样的脚本(作为普通用户),它只会获取所有内存,直到系统完全冻结(只有 SysRQ REISUB 有效)。
这里奇怪的部分是,当计算机死机时,硬盘驱动器 LED 灯会亮起并保持这种状态,直到计算机重新启动,无论我是否安装了交换分区!
所以我的问题是:
RAM:约 3.7GB 从 4GB(与显卡共享)。*
$ tail -n+1 /proc/sys/vm/overcommit_*
==> /proc/sys/vm/overcommit_memory <==
0
==> /proc/sys/vm/overcommit_ratio <==
50
$ cat /proc/swaps
Filename Type Size Used Priority
/dev/dm-1 partition 4194300 344696 -1
Run Code Online (Sandbox Code Playgroud)kernel ×1