free命令

简单命令使用

写在最前面,markdown已经熟悉了,但一直没用过表格操作,刚巧整理了一篇日志,试试markdown的表格使用
free       不加参数,默认以kb为单位显示
free -m    以M为单位 
free -g    以G为单位

语法讲解

语  法: free [-bkmotV][-s <间隔秒数>]
补充说明:free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。
参  数:
-b  以Byte为单位显示内存使用情况。
-k  以KB为单位显示内存使用情况。
-m  以MB为单位显示内存使用情况。
-o  不显示缓冲区调节列。
-s<间隔秒数>  持续观察内存使用状况。
-t  显示内存总和列。
-V  显示版本信息。
 
常用操作:
free //以KB为单位,显式系统内存使用情况
free -ml -s 1  //每秒以M为单位,显式系统内存详细使用情况。
free -c 4 -s 2  //为KB为单位,每2秒显式系统内存使用情况,一共显示4次

参数讲解

totalusedfreesharedbufferscached
Mem:1572988150926063728062800277888
-/+ buffers/cache:1168572404416
Swap:2096472166282079844

分割线

totalusedfreesharedbufferscached
Mem:1572988150926063728062800277888
所有使用了的内存,包括可回收实际剩余内存,不包括可回收
-/+ buffers/cache:1168572404416
真正使用的,不加可回收的内存所有可用内存,包括可回收
Swap:2096472166282079844

分割线

Memory that isYou'd call itLinux calls it
used by applicationsUsedUsed
used, but can be made availableFree (or Available)Used (and Available)
not used for anythingFreeFree
Mem:表示物理内存统计
total:表示物理内存总量(total = used + free)
used:表示总计分配给缓存(包含buffers 与cache )使用的数量,但其中可能部分缓存并未实际使用。
free:未被分配的内存。
shared:共享内存,一般系统不会用到,这里也不讨论。
buffers:系统分配但未被使用的buffers 数量。即剩余量
cached:系统分配但未被使用的cache 数量。

    Cache能有效缩短了 I/O系统调用(比如read,write,getdents)的时间。
    windows,无论你的真实物理内存有多少,他都要拿硬盘交换文件来读
    这也就是windows为什么常常提示虚拟空间不足的原因.
    
swap:只要不用swap的交换 空间,就不用担心自己的内存太少
    
    当可用内存少于额定值的时候,就会开始进行交换.
    如何看额定值(RHEL4.0):#cat /proc/meminfo

扩展

  1. buffers与cached的区别
A buffer is something that has yet to be “written” to disk.
A cache is something that has been “read” from the disk and stored for later use.
对于应用程序来说,buffers/cached 是等于可用的,
因为buffer/cached是为了提高文件读取的性能,当应用程序需在用到内存的时候,buffer/cached会很快地被回收。
所以从应用程序的角度来说 可用内存=系统free memory+buffers+cached.

buffers是指用来给块设备做的缓冲大小,他只记录文件系统的metadata以及 tracking in-flight pages.
cached是用来给文件做缓冲。
那就是说:buffers是用来存储,目录里面有什么内容,权限等等。
而cached直接用来记忆我们打开的文件,
先后执行两次命令#man X ,你就可以明显的感觉到第二次的开打的速度快很多。
  1. buffers/cached好处
Linux 内存管理做了很多精心的设计,除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换),
还采取了两种主要Cache方式:Buffer Cache和Page Cache,目的就是为了提升磁盘IO的性能。
从低速的块设备上读取数据会暂时保存在内存中,即使数据在当时已经不再需要了,但在应用程序下一次访问该数据时,
它可以从内存中直接读取,从而绕开低速的块设备,从而提高系统的整体性能。

而Linux会充分利用这些空闲的内存,设计思想是内存空闲还不如拿来多缓存一些数据,
等下次程序再次访问这些数据速度就快了,而如果程序要使用内存而系统中内存又不足时,
这时不是使用交换分区,而是快速回收部分缓存,将它们留给用户程序使用。

因此,可以看出,buffers/cached真是百益而无一害,
真正的坏处可能让用户产生一种错觉——Linux耗内存!
  1. 实验证明
下面通过实验来验证上面的结论:
我们先后读入一个大文件,比较两次读入的实践:
1.首先生成一个1G的大文件
#dd if=/dev/zero of=bigfile bs=1M count=1000

2.清空缓存
#echo 3 | tee /proc/sys/vm/drop_caches
3.读入这个文件,测试消耗的时间
#time cat bigfile > /dev/null
4.再次读入该文件,测试消耗的时间

转载于:https://www.cnblogs.com/irockcode/p/7686332.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值