/ proc / meminfo中的条目

时间:2009-03-18 14:13:56

标签: linux memory procfs

我可以理解 / proc / meminfo 中包含的大部分信息,如总内存,缓冲区,缓存等。你能告诉我,下面列出的那些不太明显的是什么意思?

  • AnonPages
  • 映射
  • 板坯
  • NFS_Unstable
  • 跳出
  • VmallocTotal
  • VmallocUsed
  • VmallocChunk

如果有人想知道,我在谈论linux命令的输出 cat / proc / meminfo

3 个答案:

答案 0 :(得分:33)

此信息的规范来源是/usr/src/linux/Documentation/filesystems/proc.txt。具体地,

   AnonPages: Non-file backed pages mapped into userspace page tables
      Mapped: files which have been mmaped, such as libraries
        Slab: in-kernel data structures cache
NFS_Unstable: NFS pages sent to the server, but not yet committed to stable
        storage
      Bounce: Memory used for block device "bounce buffers"
VmallocTotal: total size of vmalloc memory area
 VmallocUsed: amount of vmalloc area which is used
VmallocChunk: largest contigious block of vmalloc area which is free

答案 1 :(得分:14)

我的理解如下 我同意这些数字很难理解并且显示出不一致的价值。

  • MemTotal

    = MemFree + Active + Inactive + Slab + PageTables + VmallocUsed + X
    (X : alloc_pages() (get_free_pages(), etc))
    

    但最近内核的vmallocused值可能是错误的。 这是因为它计算VM_xxx区域,如VM_IOREMAP,VM_MAP,...而不是VM_ALLOC区域。

    VM_IOREMAP区域可以映射可以在内核之外的内存 内存管理,所以上面的公式可能不精确,或完全错误。

    您可以这样做:

    • 检查/ proc / vmallocinfo以整理所有条目并自行过滤,
    • 修改fs / proc / mmu.c:get_vmalloc_info()仅在计算区域时 if(vma-> flags& VM_ALLOC)
  • 有效+无效

     = Buffers + Cached + SwapCached + AnonPages
    
  • AnonPages

     = /proc/*/task/*/smaps anonymous area all sum
     (anonymous: no name|[heap]|/dev/zero|/dev/shm/*|[stack])
    

    虽然我无法匹配这些数字。如果您有任何线索,请参阅here并帮助我。

  • Total PageCache

     = Buffers + Cached + SwapCached
    
  • 板坯

     = SReclaimable + SUnreclaim
    

答案 2 :(得分:0)

来自RedHat

  

VMallocTotal - 总金额   记忆,以千字节为单位   分配虚拟地址空间。   VMallocUsed - 总量   使用虚拟的内存,以千字节为单位   地址空间。 VMallocChunk -   最大的连续内存块,在   千字节,可用虚拟   地址空间。