linux free命令用法以及解释

free -mt
             total       used       free     shared    buffers     cached
Mem:         16084      11115       4968          0         40       7311
-/+ buffers/cache:       3764      12320
Swap:            0          0          0
Total:       16084      11115       4968


free是显示的当前内存的使用,-m表示以兆为单位显示。-t表示:The -t switch displays a line containing the totals.

第一部分Mem行:
total 内存总数: 16804 M
used 已经使用的内存数: 11115 M
free 空闲的内存数: 4968 M
shared 当前已经废弃不用,总是0
buffers Buffer 缓存内存数: 40 M
cached Page 缓存内存数:7311M
关系:total(16804 M) = used(11115  M) + free(4968 M)


第二部分(-/+ buffers/cache):
(-buffers/cache) used内存数,表示实际被程序占用的内存数:286M (指的第一部分Mem行中的used - buffers - cached)
(+buffers/cache) free内存数,程序仍然可以挪用的内存数: 715M (指的第一部分Mem行中的free + buffers + cached)

第三部分是指交换分区, 我想不讲大家都明白.
我想大家看了上面,还是很晕.第一部分(Mem)与第二部分(-/+ buffers/cache)的结果中有关used和free为什么这么奇怪.
其实我们可以从二个方面来解释.


其中buffers/cache中的内存使用是为了提高程序的性能,而使用的,当新的程序需要内存时,这块缓存的内存仍然可以被使用。


比如使用shell的文件分隔命令时,把一个3GB的大文件按照行数进行分割,每个分割后的文件行数为1kw行:

split -l 10000000 test.txt test

分割后的文件为:testaa,testab,testac...

当使用split进行文件分割前后,我们会看到 free -mt中free的内存数会急剧下降,当我们删掉testa* 文件后,free的内存数就会继续回升。


为了清除混存的cache,可以采用以下命令:

To free pagecache:
 echo 1 > /proc/sys/vm/drop_caches


To free dentries and inodes:
 echo 2 > /proc/sys/vm/drop_caches


To free pagecache, dentries and inodes:
 echo 3 > /proc/sys/vm/drop_caches

当然,往/proc/sys/vm/drop_caches中写入的前提是你得有root权限


参考链接:http://linux.chinaunix.net/techdoc/system/2008/09/11/1031498.shtml

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值