[将问题从 StackOverflow 移至似乎不太合适的地方]
内核使用default_hugepagesz=1G
选项启动,该选项定义默认页面大小的大小。因此,当应用程序需要大内存时,内核会为其分配1G页面。
如果内核以 启动hugepages=N
,即在启动时分配 N 个大页面。那么在这种情况下,内核会自动从该池中获取页面,从而节省分配内存的时间?
当这个池用完可用页面时,内核将如何分配大内存?
答案1
在启动时分配大页面的优点是在内存碎片之前预先分配页面。分配的大页面数量也可以在运行时更改,并且可以设置过量使用限制 - 只要有足够的页面可用于转换为大页面,内核将在必要时分配新的大页面,直至过量使用限制。
看相关内核文档了解详情。