linux free 解读

free命令可以用来查看系统内存使用情况。我一般习惯-m参数以MB的方式查看

  
  
  1. [root@localhost ~]# free -m
  2. total used free shared buffers cached
  3. Mem: 1020288 947960 72328 312 82656 647740
  4. -/+ buffers/cache: 217564 802724
  5. Swap: 2097148 466656 1630492

其他参数

  • -b  以Byte为单位显示内存使用情况。 
  • -k  以KB为单位显示内存使用情况。 
  • -m  以MB为单位显示内存使用情况。
  • -g   以GB为单位显示内存使用情况。 
  • -o  不显示缓冲区调节列。 
  • -s<间隔秒数>  持续观察内存使用状况。 
  • -t  显示内存总和列。 
  • -V  显示版本信息。

解释:

  •    total:是总的物理内存
  •    used:使用中的内存
  •    free:完全空闲的内存
  •    shared:多个进程共享的内存 
  •    buffers:写缓存,在写入磁盘之前,先把数据缓存一段时间,可以释放
  •    cache:读缓存,读取过的文件,会缓存一段时间。可以释放
  •    -buffers/cache:应用程序实际使用中的内存大小,等于used-buffers-cached(Mem列的三个数)
  •    +buffers/cache:可供使用的内存总量,等于free+buffers+cached(Mem列的三个数)
  •    Swap:不解释,都能看懂的

所以,可以供程序使用的内存,应该看+buffers/cache(),而不是free。

那明明已经开始使用 swap了,怎么能说内存还充足呢?

照我的理解是,系统在分配内存的时候,如果发现内存不足,会释放一批旧的cache,把空间腾出来给新申请的进程用, 有时候释放不充分或者不及时,于是开始使用到swap了!

手动释放缓存

使用sync命令可以把buffer强制写入硬盘,有时候怕配置没有生效,会使用它强制写到硬盘。如果系统突然断电,buffer的数据没保存,是会丢失的!其实,大多数情况下,占用内存的都是cache,而不是buffer!

下面来说说怎么使用sysctl强制释放缓存,和内存释放相关的内核参数是vm.drop_caches,vm.drop_caches可以设置为0、1、2、3。

说明

   0 采取措施之前的默认值

   1 释放pagecache

   2 释放dentries 和 inodes

   3 释放pagecache、dentries和inodes

实际操作可以使用如下的sysctl,也可以使用echo 3 > /proc/sys/vm/drop_caches,效果一样!

  
  
  1. [root@localhost ~]# sysctl vm.drop_caches=3
  2. vm.drop_caches = 3
  3. [root@localhost ~]# free -m
  4. total used free shared buffers cached
  5. Mem: 996 88 907 0 0 12
  6. -/+ buffers/cache: 75 920
  7. Swap: 2047 455 1592

不过这个还是会慢慢涨起来的!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 在Linux中,"free"命令用于显示系统的内存使用情况。可以使用不同的选项来以不同的单位显示输出,比如以KB、MB或GB为单位显示。使用"-h"选项可以以人类可读的方式显示输出,自动进行单位缩放。使用"-l"选项可以显示详细的低内存和高内存统计信息。使用"-o"选项可以使用旧格式显示输出,不包括缓存和缓冲区的行。使用"-t"选项可以显示RAM和交换总数,即显示系统的全部内存。使用"-s"选项可以指定更新内存信息的延迟时间。使用"-V"选项可以显示版本信息并退出。根据内存使用量的计算公式,可以通过"free"命令输出的信息计算出内存使用量的百分比。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *3* [Linux free命令及详解](https://blog.csdn.net/yinhangtian/article/details/103362718)[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^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [【linux】--- free命令详解](https://blog.csdn.net/Beat_Boxer/article/details/103072140)[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^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值