当我使用默认设置时:
vm.overcommit_memory = 0
vm.overcommit_ratio = 50
/proc/meminfo
我可以从文件中读取这些值:
CommitLimit: 2609604 kB
Committed_AS: 1579976 kB
但是当我从 更改vm.overcommit_memory
为0
时2
,我无法启动在更改之前可以启动的同一组应用程序,尤其是 amarok。我不得不更改vm.overcommit_ratio
为300
,因此可以增加限制。现在,当我启动 amarok 时,/proc/meminfo
显示以下内容:
CommitLimit: 5171884 kB
Committed_AS: 3929668 kB
这台机器只有 1GiB 的 RAM,但是当vm.overcommit_memory
设置为 0 时 amarok 可以正常工作。但是在设置为 的情况下2
,amarok 需要分配超过 2GiB 的内存。这是正常行为吗?如果是这样,谁能解释为什么,例如,firefox(它比 amarok 消耗 4-6 倍的内存)在更改前后以相同的方式工作?