linux 命令 free -m详解

11 篇文章 1 订阅

先看一下free命令的输出<我这里是gentoo linux>:

total       used       free     shared    buffers     cached
Mem:       2586752    2098752     488000          0     160032     890292
-/+ buffers/cache:    1048428    1538324
Swap:      1060248          0    1060248

我们先看一下第一/二行各字段表示的意思:
total: 内存总数2586752
used: 已经使用的内存2098752
free: 空闲内存数488000
shared: 当前废弃不用内存,0
buffers: 缓冲内存数160032
cached: 缓存数890292

其中total = used + free

那么,buffer和cache的区别是什么呢?用简单两句话来说:
buffer is for writting
cache is for reading

下面这两句是我从网上找到的,应该不难理解

Buffers
Are used by programs with active I/O operations, i.e. data waiting to be
written to disk

Cache
Is the result of completed I/O operations, i.e. buffers that have been
flushed or data read from disk to satisfy a request.

接着我们再看第三行的

-/+ buffers/cache:    1048428    1538324

这个-/+分别是什么意思呢?先看一下这个公式:

- buffers/cache = used – buffers – cached = 1048428
+ buffers/cache = free + buffers + cached = 1538324

这样就好理解了:
-buffers/cache表示的是实际上被程序上真正吃掉的内存
+buffers/cache表示的是实际还可以挪用的内存


关系说明

查看内存情况最常用的是free命令:

shell> free -m

                               total     used     free   shared    buffers     cached 

Mem:                     32101   29377    2723          0           239      25880 

-/+ buffers/cache:       3258     28842 

Swap:                     2047     0            2047

新手看到used一栏数值偏大,free一栏数值偏小,往往会认为内存要用光了。其实并非如此,之所以这样是因为每当我们操作文件的时 候,Linux都会尽可能的把文件缓存到内存里,这样下次访问的时候,就可以直接从内存中取结果,所以cached一栏的数值非常的大,不过不用担心,这 部分内存是可回收的,操作系统的虚拟内存管理器会按照LRU算法淘汰冷数据。还有一个buffers,也是可回收的,不过它是保留给块设备使用的。

知道了原理,我们就可以推算出系统可用的内存是free + buffers + cached:

shell> echo $((2723 + 239 + 25880))28842

至于系统实际使用的内存是used – buffers – cached:

shell> echo $((29377 - 239 - 25880))3258


ref:http://hi.baidu.com/savagert/item/55d4111061e88f8d88a9563c

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Linux中的free -m命令用于显示系统中的内存使用情况,并将结果以MB为单位显示。 当我们在终端中输入free -m命令时,会得到以下结果:Total表示系统内存的总大小,Used表示已使用的内存大小,Free表示可用的内存大小,Shared表示为多个进程共享的内存大小,Buffers表示系统缓存的内存大小,Cache表示缓存的文件系统页的内存大小,Available表示系统可用的内存大小。 例如,在上述命令输出的结果中,系统的总内存是864MB,已使用的内存是403MB,可用的内存是79MB,共享的内存是20MB,缓冲区的内存是60MB,缓存的内存是321MB。 这些信息可以帮助我们了解系统的内存使用情况,并根据需要做出相应的调整。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [linux free命令详解](https://download.csdn.net/download/weixin_38731761/12843180)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [深入理解linux free命令及内存含义](https://blog.csdn.net/stpeace/article/details/104127518)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值