linux 内存占用比以及内存各字段介绍

来源:互联网 发布:黑科技网络翻墙 编辑:程序博客网 时间:2024/05/17 08:08

  • in theory
  • for example
  • 内存字段介绍

in theory

Linux会借用空闲的内存当作磁盘缓存, 磁盘数据缓存会让linux运行的更快,它永远不会从程序中拿出内存。

它没有任何缺点,只是会混淆新手,如果你的应用程序需要更多的内存,他们会回收一部分用作磁盘数据缓存的物理内存,返回给应用程序,这个过程不需要启动交换

磁盘缓存(Disk caching)是不能禁用的 –为了增加数据交换速度

内存占用率 = total/ (total - (used + free + buffer + cache))

for example


如果真要和windows比,其剩余的内存大小为 +buffers/cache = 685544kb (680m左右)
程序使用内存大小 330m左右,而不是 使用了 900M 剩余100M

buffer里 73m用作块设备做缓存(记录文件系统的metadata和tracking in flight pages )
cached 里 510m 用作缓存文件

buffer和cached 随时都可以腾出空间 给程序使用

内存字段介绍

buffer 用于存放要输出到磁盘的数据
cache是从磁盘读出存放到内存中待今后使用的数据。它们的引入均是为了提供IO的性能。
shared 为进程间共享的内存

  内存:从用户和操作系统的角度来看,其大小空间是有区别的。像buffer/cached的内存,由于这块内存从操作系统的角度确实被使用,但如果用户要使用,这块内存是可以很快被回收而被用户空间程序使用,因此从用户角度而言这块内存应被划为空闲状态。

  为什么Linux 会有这种机制呢?

  其实这是一种非常优秀的设计,目的就是为了提升磁盘IO的性能,从低速的块设备上读取的数据会暂时保存在内存中,即使数据在当时已经不再需要了,但在应用程序下一次访问该数据时,它可以从内存中直接读取,从而绕开低速的块设备,从而提高系统的整体性能。

原创粉丝点击