Linux内核:获取NUMA节点上页面缓存分布的信息

Linux内核:获取NUMA节点上页面缓存分布的信息,linux,linux-kernel,numa,procfs,Linux,Linux Kernel,Numa,Procfs,当Linux内核在NUMA上运行时,每个NUMA节点都有部分独立的内存管理echo'?'>/proc/sysrq trigger函数“将当前内存信息转储到您的控制台。”of(实现为和),以获取每个NUMA节点到系统控制台、dmesg和系统内核日志的基本内存统计信息 据我所知,内核的磁盘缓存()会为每个NUMA节点打印内存使用情况的数据,可能来自active\u文件:%lu非active\u文件:%lucode of。(从free工具输出缓存的行?) 我想通过频繁更新长时间监控numa节点上的磁盘

当Linux内核在NUMA上运行时,每个NUMA节点都有部分独立的内存管理<代码>echo'?'>/proc/sysrq trigger函数“将当前内存信息转储到您的控制台。”of(实现为和),以获取每个NUMA节点到系统控制台、dmesg和系统内核日志的基本内存统计信息

据我所知,内核的磁盘缓存()会为每个NUMA节点打印内存使用情况的数据,可能来自
active\u文件:%lu非active\u文件:%lu
code of。(从
free
工具输出缓存的行?)

我想通过频繁更新长时间监控numa节点上的磁盘缓存使用情况;我不想用SysRq-
m
的输出填充整个控制台和dmesg。我计划研究多进程或多线程程序(未绑定到具有关联性的核心或节点)如何与放置在其他节点内存中的pagecache页面交互

是否通过读取和解析
/proc
/sys
中的一些特殊文件,在不使用sysrq的情况下为程序访问发布此信息(每个NUMA节点的页面缓存内存使用情况)?还是需要为此编写新的内核模块

free
工具使用
/proc/meminfo
为整个系统打印;并非每个NUMA节点都适用。我无法在程序5的手册页中找到每numa内存统计信息


有numastat:但它没有页面缓存内存统计信息;据我所知,它只涉及跨numa页面分配计数,当进程经常在numa节点之间移动时,这可能是无用的。

对于每个具有基本内存信息的节点,都有
/sys/devices/system/node/nodeX/meminfo
文件,例如
/sys/devices/system/node/node0/meminfo>,
/sys/devices/system/node/node1/meminfo
用于节点1等

它们应该类似于
/proc/meminfo
系统范围的文件格式,该格式实际上由
免费
实用程序使用;其手册页包含
meminfo
格式的基本说明:

NUMA的meminfo在中提到

已用内存的某些部分可能会变脏:

    Dirty: Memory which is waiting to get written back to the disk
Writeback: Memory which is actively being written back to the disk
它还显示了匿名用户空间任务使用的内存量:

    AnonPages: Non-file backed pages mapped into userspace page tables
AnonHugePages: Non-file backed huge pages mapped into userspace page tables

每个具有基本内存信息的节点都有
/sys/devices/system/node/nodeX/meminfo
文件,例如NUMA节点0的
/sys/devices/system/node/node0/meminfo
,节点1的
/sys/devices/system/node/node1/meminfo

它们应该类似于
/proc/meminfo
系统范围的文件格式,该格式实际上由
免费
实用程序使用;其手册页包含
meminfo
格式的基本说明:

NUMA的meminfo在中提到

已用内存的某些部分可能会变脏:

    Dirty: Memory which is waiting to get written back to the disk
Writeback: Memory which is actively being written back to the disk
它还显示了匿名用户空间任务使用的内存量:

    AnonPages: Non-file backed pages mapped into userspace page tables
AnonHugePages: Non-file backed huge pages mapped into userspace page tables
嗯,在中有
K(node\u page\u state(pgdat,NR\u ACTIVE\u FILE)),
in,drivers/base/node.c:
node\u read\u meminfo
。如何访问它,何时实现?是否记录在手册页中;不仅在?Hmm中,还有
K(node\u page\u state(pgdat,NR\u ACTIVE\u FILE)),
in,在drivers/base/node.c:
node\u read\u meminfo
。如何访问它,何时实现?是否记录在手册页中;不仅在中国?
    AnonPages: Non-file backed pages mapped into userspace page tables
AnonHugePages: Non-file backed huge pages mapped into userspace page tables