我可以分配比VmallocTotal
给出的内存更多的内存/proc/meminfo
吗?
答案1
vmalloc()
是一个内部核函数。它不可用于用户程序。它对用户程序的内存分配没有影响。 VmallocTotal
限制调用的内核代码的分配vmalloc()
(并且VmallocTotal
不会自动或手动更改)。
用户程序可以“分配”的最大内存大小取决于过度使用设置。我用吓人的引号写“分配”,因为“过度使用”在某种程度上与“分配内存”的想法相矛盾。这里有一个解释,你可以通过它使用的关键字搜索其他解释:https://serverfault.com/questions/606185/how-does-vm-overcommit-memory-work
作为内核文档说起来,像mmap()
或 the old 这样的系统调用sbrk()
默认情况下不会分配内存。他们返回“地址空间”。如果/当写入时,实际内存将按需映射。内存以页为单位进行映射(通常为 4096 字节)。