今天一位朋友在了解Linux查看内存使用情况的时候,其中涉及到很多内存的相关知识,这不,今天我朋友就对命令:cat /proc/meminfo 结果中出来的MemTotal、Memory Free和Memory Avaliable这三个参数比较疑惑。

[[email protected] ~]# cat /proc/meminfo

MemTotal: 3785108 kB

MemFree: 708756 kB

MemAvailable: 1254960 kB

Buffers: 66624 kB

Cached: 589396 kB

SwapCached: 19524 kB

......

因此,我简单给大家讲一下,做一个粗略的解答整理吧!

1、MemTotal:内存总数

系统从加电开始到引导完成,BIOS等要保留一些内存,内核要保留一些内存,最后剩下可供系统支配的内存就是MemTotal。这个值在系统运行期间一般是固定不变的。

2、MemFree:空闲内存数

表示系统尚未使用的内存。MemUsed=MemTotal-MemFree 就是已被用掉的内存。

3、MemAvailable:可用内存数

应用程序可用内存数。系统中有些内存虽然已被使用但是可以回收的,比如cache/buffer、slab都有一部分可以回收,所以MemFree不能代表全部可用的内存,这部分可回收的内存加上MemFree才是系统可用的内存,即:MemAvailable≈MemFree+Buffers+Cached,它是内核使用特定的算法计算出来的,是一个估计值。它与MemFree的关键区别点在于,MemFree是说的系统层面,MemAvailable是说的应用程序层面。

4、Buffer:缓冲区内存数

5、Cache:缓存区内存数

6、Shared:多个进程共享的内存空间,不常用,暂不讨论。

Buffer与Cache的区别:

这里说下buffer与cache的区别,首先,从字面意义上讲,buffer是缓冲的意思,cache是缓存的意思。举个现实中的例子,比说铁道头上像弹簧一样的东西,就叫缓冲;部署在森林里的存应急物资的保管箱,名叫“Food Cache”,类似一种保存箱。

其次,常见的说法,叫write-buffer和read-cache,buffer一般用作写操作上,cache一般用在读操作上,不过也不是一成不变的; 举例说明,每秒要写100次硬盘,对系统冲击很大,浪费了大量时间在忙着处理开始写和结束写这两件事嘛。用buffer暂存起来,变成每10秒写一次硬盘,对系统的冲击就很小,写入效率高了;Cache 是为了弥补高速设备和低速设备的鸿沟而引入的中间层,最终起到加快取速度的作用。比如你一个很复杂的计算做完了,下次还要用结果,就把结果放手边一个好拿的地方存着,下次不用再算了,加快了数据取用的速度。

内存计算公式:

参照 free 的输出结果,这里有几个计算公式:

[[email protected] ~]# free

total used free shared buffers cached

Mem: 16433020 1827360 14605660 740 203540 1051400

-/+ buffers/cache: 572420 15860600

Swap: 8388604 0 8388604

为了直观说明,我们把:

第2行,Mem 行,我这里称作 OS Mem;

第3行,buffers/cache 行,称作 APP buffer/cache:

OS Mem total = OS Mem used + OS Mem free

APP buffers/cache used = OS Mem used - OS Mem buffers - OS Mem cached

APP buffers/cache free = OS Mem free + OS Mem buffers + OS Mem cached

APP buffers/cache total = APP buffers/cache used + APP buffers/cache free = OS Mem total

总结:

虽然文章中讲的也比较简单,但是也涉及了一些Linux内存参数详细说明,有想了解的朋友们也可以去看一下。

linux mem cache,Linux内存:MemTotal、MemFree、MemAvailable三者区别相关推荐

  1. linux 文件cache,Linux下哪些文件在消耗我们的Cache?

    我们很容易就用free命令看到系统的cache使用量,但是你知道是哪些程序的文件在消耗cache吗?虽然cache在严格意义上也是可以当做free的内存使用的,也可以通过 echo 3>/pro ...

  2. linux prelink.cache,Linux基础操作

    1.Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示. 1.1 cp复制命令 单个文件复制:cp [OPTION]... SOURCE DEST 如果DEST不存在,则事先创建文 ...

  3. linux内存没有available,Linux MemFree与MemAvailable的区别

    最近在做Prometheus的监控,结合Grafana做前端展示,其中涉及到内存的时候,有不少人对Memory Free和Memory Avaliable这两个参数比较疑惑,这里我结合linux下常用 ...

  4. linux如何手动释放内存吗,Linux如何手动清理内存中cache信息

    当在Linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching.那么Linux如何手动清理内存中cache信息?下面跟着学习啦小编一起来了解一下吧. ...

  5. Linux内存耗尽宕机6,转载:Linux服务器Cache占用过多内存导致系统内存不足最终java应用程序崩溃解决方案...

    原文链接: https://blog.csdn.net/u014740338/article/details/66975550 问题描述 Linux内存使用量超过阈值,使得Java应用程序无可用内存, ...

  6. Linux buffer/cache 内存占用过高的原因以及解决办法

    表现现象 在Linux系统中,我们经常用free命令来查看系统内存的使用状态.在一个 CoreOS 的系统上,free命令的显示内容大概是这样一个状态: core@localhost ~ $ free ...

  7. Linux服务器Cache占用过多内存导致系统内存不足问题的排查解决

    Linux服务器Cache占用过多内存导致系统内存不足问题的排查解决 参考文章: (1)Linux服务器Cache占用过多内存导致系统内存不足问题的排查解决 (2)https://www.cnblog ...

  8. Linux中Cache内存占用过高解决办法

    在Linux系统中,我们经常用free命令来查看系统内存的使用状态.在一个RHEL6的系统上,free命令的显示内容大概是这样一个状态: 这里的默认显示单位是kb,我的服务器是128G内存,所以数字显 ...

  9. Linux服务器Cache占用过多内存导致系统内存不足问题的排查解决(续)

    Linux服务器Cache占用过多内存导致系统内存不足问题的排查解决(续) 参考文章: (1)Linux服务器Cache占用过多内存导致系统内存不足问题的排查解决(续) (2)https://www. ...

最新文章

  1. centos8 用u盘安装失败_玩转jenkins - 在自己的服务器上安装jenkins
  2. Eclipse jee 配置Tomcat5.5
  3. 使用 Boost.Lambda 库创建并存储在 Boost.Function 对象中的函子中使用 Boost.Units 的数量、单位和绝对类型
  4. access中如何画斜线_大神支招:如何设计access行政区划菜单
  5. c语言考试题及答案 大一,大一C语言期末考试试题
  6. css 一行显示_CSS笔记1
  7. 大屏做成这样,领导不重用你都难
  8. 最大团问题-分支限界
  9. C语言编译器哪个好用,常用C语言编译器有哪些
  10. python怎么填充背景颜色,python通过pil为png图片填充上背景颜色的方法
  11. CentOS8 离线安装 汉语拼音
  12. 计算机九九乘法口诀表,九九乘法口诀表
  13. 银行业务系统(c/s架构、socket网络编程、多线程)
  14. php面包屑源码,推荐两款好用的WordPress面包屑插件
  15. python搜狗微信搜索wechatsogou 用法
  16. Anroidstudio安装
  17. 毕业设计《软件工程》教学网站的设计与实现ASP+SQL Sever2000
  18. mysql 死锁 navicat
  19. Python面向对象项目练习:商品信息管理系统
  20. 一位操盘手的临别赠言

热门文章

  1. 联发科完成双模芯片实验室测试 首批5G终端明年一季度问世
  2. SpaceX载人龙飞船Crew Dragon成功完成首飞返回地球!
  3. -拳王虚拟项目公社:虚拟产品自动赚钱技术 小白快速赚到钱的秘方
  4. 一生里和你爱的人做完这50件事
  5. 晨哥真有料丨盘点追女生的作死行为!
  6. php png缩放,PHP实现对png图像进行缩放的方法(支持透明背景)
  7. xp电脑多少位怎么看_如何查看电脑是什么操作系统和多少位?
  8. oracle的sqlload遇到超长,oracle sqlload
  9. 【Flink】FLink checkpoint 某个 subtask 特别耗时 DisconnectException: null
  10. 95-38-150-Buffer-CompositeByteBuf