当我使用默认设置时:
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,但将amarok vm.overcommit_memory
设置为0 时,其工作不会出现问题。但是,如果将2
amarok 设置为,则amarok需要分配超过2GiB的内存。这是正常现象吗?如果是这样,那么谁能解释一下,为什么firefox(消耗的内存比amarok多4-6倍)为何在更改前后都以相同的方式工作?
Committed_AS
两种情况下的值不应该相同吗?