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