numactl - 显示错误信息的硬件

时间:2014-06-30 08:46:31

标签: c memory memory-management parallel-processing numa

我正在使用NUMA计算机。它有两个节点,每个节点上有16GB内存。当我运行大型程序时,我使用htopnumactl --hardware来观察内存消耗。但是我得到了两个不同的结果。

htop表明我的程序总共消耗了大约20GB的内存。但是,numactl --hardware显示使用了近32GB。那么,哪一个是正确的?或者numactl --hardware没有显示实际的常驻内存但是其他类型的内存?

Results

2 个答案:

答案 0 :(得分:2)

numactl --hardware内存输出来自libnuma中的numa_node_size64()函数,后者又从MemTotal中的MemFree/sys/devices/system/node/node%d/meminfo值获取信息。< / p>

假设您使用的是Linux,则可以尝试cat /sys/devices/system/node/node0/meminfo(对于node1也是如此)以查看更详细的内存信息。您应该能够将其中一些值与您的htop输出相关联。如果这没有帮助,则必须查看内核源如何导出MemFree值。

这是我的单节点系统的示例输出。你看到有很多信息:

Node 0 MemTotal:        7069704 kB
Node 0 MemFree:         4099480 kB
Node 0 MemUsed:         2970224 kB
Node 0 Active:          1677108 kB
Node 0 Inactive:         934216 kB
Node 0 Active(anon):    1056284 kB
Node 0 Inactive(anon):    46232 kB
Node 0 Active(file):     620824 kB
Node 0 Inactive(file):   887984 kB
Node 0 Unevictable:          16 kB
Node 0 Mlocked:              16 kB
Node 0 Dirty:               220 kB
Node 0 Writeback:             0 kB
Node 0 FilePages:       1556076 kB
Node 0 Mapped:           249100 kB
Node 0 AnonPages:       1055236 kB
Node 0 Shmem:             47276 kB
Node 0 KernelStack:        3712 kB
Node 0 PageTables:        33648 kB
Node 0 NFS_Unstable:          0 kB
Node 0 Bounce:                0 kB
Node 0 WritebackTmp:          0 kB
Node 0 Slab:             218156 kB
Node 0 SReclaimable:     168548 kB
Node 0 SUnreclaim:        49608 kB
Node 0 AnonHugePages:         0 kB
Node 0 HugePages_Total:     0
Node 0 HugePages_Free:      0
Node 0 HugePages_Surp:      0

答案 1 :(得分:0)

事实证明,numactl --hardware将高速缓冲存储器视为&#34;使用的存储器&#34;但不是&#34;免费记忆&#34;。这就是为什么它显示htop显示的更多内存消耗。

好读: http://www.linuxatemyram.com/