可以分配的最大大小

可以分配的最大大小

我可以分配比VmallocTotal给出的内存更多的内存/proc/meminfo吗?

答案1

vmalloc()是一个内部核函数。它不可用于用户程序。它对用户程序的内存分配没有影响。 VmallocTotal限制调用的内核代码的分配vmalloc()(并且VmallocTotal不会自动或手动更改)。

用户程序可以“分配”的最大内存大小取决于过度使用设置。我用吓人的引号写“分配”,因为“过度使用”在某种程度上与“分配内存”的想法相矛盾。这里有一个解释,你可以通过它使用的关键字搜索其他解释:https://serverfault.com/questions/606185/how-does-vm-overcommit-memory-work

作为内核文档说起来,像mmap()或 the old 这样的系统调用sbrk()默认情况下不会分配内存。他们返回“地址空间”。如果/当写入时,实际内存将按需映射。内存以页为单位进行映射(通常为 4096 字节)。

相关内容