Linux系统启动期间预留的Hugepage内存是否持续?
Whether the Hugepage Memory Reserved During Linux System Startup Is Continuous?
例如:
通过将以下行作为根用户添加到 /etc/default/grub 文件中的内核命令行选项,为 1 GB 页面创建一个 HugeTLB 池:
default_hugepagesz=16G hugepagesz=1G
Linux是否保证16GB的hugepage内存是连续的?如果不是,有什么命令可以查看是否连续吗?
每个 hugetlbfs“页面”在物理上都是连续的。从一页到下一页,不保证物理上相邻。
在启动时分配更大的页面大小(即 1GB)的原因是 运行 系统上的内存随着时间的推移变得更加碎片化,并且找到大的、连续的内存块以供大页面使用变得越来越多罕见。
在回答您的问题时,如果您的体系结构支持创建 16GB 页面大小,那么可以,单个 16GB 页面在物理上是连续的。
来源https://www.kernel.org/doc/html/latest/admin-guide/mm/hugetlbpage.html#hugetlbpage:
hugepagesz Specify a huge page size. Used in conjunction with
hugepages parameter to preallocate a number of huge pages of the
specified size. Hence, hugepagesz and hugepages are typically
specified in pairs such as:
hugepagesz=2M hugepages=512 hugepagesz can only be specified once on
the command line for a specific huge page size. Valid huge page sizes
are architecture dependent.
但是,文档中的这条评论让我相信通常不支持创建大于 1GB 的页面大小:
For example, x86 CPUs normally support 4K and 2M (1G if
architecturally supported) page sizes
例如:
通过将以下行作为根用户添加到 /etc/default/grub 文件中的内核命令行选项,为 1 GB 页面创建一个 HugeTLB 池:
default_hugepagesz=16G hugepagesz=1G
Linux是否保证16GB的hugepage内存是连续的?如果不是,有什么命令可以查看是否连续吗?
每个 hugetlbfs“页面”在物理上都是连续的。从一页到下一页,不保证物理上相邻。
在启动时分配更大的页面大小(即 1GB)的原因是 运行 系统上的内存随着时间的推移变得更加碎片化,并且找到大的、连续的内存块以供大页面使用变得越来越多罕见。
在回答您的问题时,如果您的体系结构支持创建 16GB 页面大小,那么可以,单个 16GB 页面在物理上是连续的。
来源https://www.kernel.org/doc/html/latest/admin-guide/mm/hugetlbpage.html#hugetlbpage:
hugepagesz Specify a huge page size. Used in conjunction with hugepages parameter to preallocate a number of huge pages of the specified size. Hence, hugepagesz and hugepages are typically specified in pairs such as:
hugepagesz=2M hugepages=512 hugepagesz can only be specified once on the command line for a specific huge page size. Valid huge page sizes are architecture dependent.
但是,文档中的这条评论让我相信通常不支持创建大于 1GB 的页面大小:
For example, x86 CPUs normally support 4K and 2M (1G if architecturally supported) page sizes