代码之家  ›  专栏  ›  技术社区  ›  simon

Linux是如何计算MemFree的

  •  10
  • simon  · 技术社区  · 16 年前

    我试图了解我的嵌入式linux内存使用情况。

    linux是如何计算可用物理内存的?因为它似乎没有考虑到虚拟内存空间中分配的所有内容。

    2 回复  |  直到 16 年前
        1
  •  14
  •   oz123    12 年前

    MemFree /proc/meminfo 是好友分配器中有多少空闲页面的计数。这个伙伴分配器是内核中物理内存分配的基本单元;然而,在需要时,有很多方法可以将页面返回给好友分配器,例如释放空SLAB、丢弃缓存/缓冲区RAM(即使这意味着在运行进程中使PTE无效),或者作为最后的手段,交换内容。

    空闲内存 通常控制为仅占总物理RAM的5-10%,随着时间的推移,任何额外的空闲RAM都会被添加到缓存中。因此, 空闲内存 单独来看,这是对整体记忆情况的一个非常不完整的看法。

    paged in upon first access 因此,在实际使用之前,不会注册为正在使用的内存。驻留大小(RSIZE)是一个更准确的视图,因为它只注册映射到的页面 马上 -尽管如果给定的页面映射到多个虚拟地址中,这也可能不准确(这在考虑多个进程时非常常见-共享库具有映射到使用该库的所有进程的相同物理RAM)

        2
  •  3
  •   racerror    16 年前

    尝试使用htop。您必须安装它 sudo apt-get install htop yum install htop 不管怎样。

    它将向您显示更准确的内存使用情况。

    基本上,它归结为“缓冲区/缓存”。

    free -m
    

                 total       used       free     shared    buffers     cached
    Mem:          3770       3586        183          0        112       1498
    -/+ buffers/cache:       1976       1793
    Swap:         7624        750       6874