Omn*_*ous 4 linux memory virtual-memory
看来内核无论如何都在使用大页面,那么为什么要使用特定的内核参数来指定要保留的大页面数量呢?
毕竟,/proc/meminfo显示、和的值,指示每种大小的页面存在的页表条目数DirectMap4KDirectMap4MDirectMap1G。因此,显然,正在使用大于 4KiB 的页面。
为什么/proc/sys/vm/nr_hugepages和朋友还存在?
nr_hugepages仍然存在,因为它是您提到的其他价值观的补充。内核文档包含所有详细信息,但基本上/proc/sys/vm/nr_hugepages显示了 kernel\xe2\x80\x99 的大页面池中默认大小的持久大页面的数量(其大小由HugePages_Totalin中显示/proc/meminfo)。nr_hugepages是管理员控制的设置,在启动时使用hugepages内核参数定义,和/或在运行时通过写入定义nr_hugepages(只要系统能够提供请求的大页面数量)。
的目的是通过共享内存或使大页面可供用户空间程序nr_hugepages使用。通过分配的页数构成了为此用途保留的大页池;如果系统\xe2\x80\x99s 资源允许,可能会有更多的大页可用(达到由 设定的限制),但\xe2\x80\x99s 不保证。它可在所有支持大页面的平台上使用。这些页面对于进行大量内存分配的程序很有用,但它们确实引入了约束 \xe2\x80\x94 特别是它们不能\xe2\x80\x99 被换出。 hugetlbfsmmap nr_hugepagesnr_overcommit_hugepages
正如Linux 的 \xe2\x80\x9c/proc/meminfo\xe2\x80\x9d 文件中的 HardwareCorrupted、DirectMap4k、DirectMap2M 字段的含义是什么中提到的?,DirectMap是特定于 x86 的实现细节。它测量内核对各种大小页面的页面映射的使用情况;这显示了内核能够将页面映射为各种大小的大页面的程度。这不受\xe2\x80\x99t 的限制nr_hugepages:即使在大页池(用于用户空间)中没有大页的系统上,内核也会尝试合并页映射以减少 TLB 负载(请参阅try_preserve_large_page)pageattr.c。
| 归档时间: |
|
| 查看次数: |
11935 次 |
| 最近记录: |