检查 /sys/kernel/mm 中的大页配置
在这最后一步,我们将探索另一个可以获取大页(Hugepages)配置信息的地方:/sys
文件系统。/sys
文件系统提供了一个访问内核数据结构的接口,让我们能够检查,有时还能修改内核对象。
与大页相关的信息可以在 /sys/kernel/mm/transparent_hugepage
目录下找到。透明大页(Transparent Hugepages,THP)是一项功能,它尝试自动使用大页,而无需应用程序进行显式配置。
让我们使用 cd
命令进入这个目录。cd
代表“change directory”(更改目录)。
输入以下命令并按回车键:
cd /sys/kernel/mm/transparent_hugepage
现在我们已经进入了 /sys/kernel/mm/transparent_hugepage
目录,让我们使用 ls
命令列出该目录下的文件。ls
命令用于列出目录的内容。
输入以下命令并按回车键:
ls
你应该会看到类似以下的输出:
defrag enabled khugepaged numa_defrag shmem_enabled split_huge_pmd_size split_huge_pte_size
这些文件代表了透明大页的不同配置选项和状态指示。
让我们使用 cat
命令查看 enabled
文件的内容。这个文件显示了透明大页是启用、禁用,还是处于“madvise”模式(在这种模式下,应用程序可以向内核建议大页的使用方式)。
输入以下命令并按回车键:
cat enabled
你应该会看到类似以下的输出:
[always] madvise never
输出表示当前的设置。[always]
表示当前所有映射都启用了透明大页。
现在让我们查看 defrag
文件。这个文件控制内核是否应该尝试对内存进行碎片整理,以使大页可用。
输入以下命令并按回车键:
cat defrag
你应该会看到类似以下的输出:
[always] defer defer+madvise madvise never
同样,[always]
表示与透明大页相关的内存碎片整理的当前设置。
/sys
文件系统是了解内核内部状态和配置的宝贵资源。探索像 /sys/kernel/mm
这样的目录可以深入了解内存管理。
你现在已经成功地使用三种不同的方法探索了大页信息:/proc/meminfo
、sysctl
和 /sys
文件系统。
点击 Continue 完成实验。