2013-08-06 11:19:53 ztejiagn 阅读数 4578
我的linux执行free命令显示如下:

[root@Linux /tmp]# free
             total       used       free     shared    buffers     cached
Mem:       4149156    4130412      18744          0      13220    2720160
-/+ buffers/cache:    1397032    2752124
Swap:      6289408        144    6289264第1行
total 内存总数: 4149156
used 已经使用的内存数: 4130412
free 空闲的内存数: 18744
shared 当前已经废弃不用,总是0
buffers Buffer Cache内存数: 13220
cached Page Cache内存数: 2720160

关系:total = used + free

第2行:
-/+ buffers/cache的意思相当于:
-buffers/cache 的内存数:1397032 (等于第1行的 used - buffers - cached)
+buffers/cache 的内存数: 2752124 (等于第1行的 free + buffers + cached)

可见-buffers/cache反映的是被程序实实在在吃掉的内存,而+buffers/cache反映的是可以挪用的内存总数。

第三行单独针对交换分区, 就不用再说了.

为了提高磁盘存取效率, Linux做了一些精心的设计, 除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换), 还采取了两种主要Cache方式:Buffer Cache和Page Cache。前者针对磁盘块的读写,后者针对文件inode的读写。这些Cache有效缩短了 I/O系统调用(比如read,write,getdents)的时间。

如果感兴趣可以进一步参考文件/proc/meminfo,free命令就是根据它的信息生成的。free命令的源码可从procps-xxx-.src.rpm获取,xxx为版本号,比如procps-3.2.3-5.3.src.rpm。
2015-09-10 11:21:21 LinBilin_ 阅读数 5949
的linux执行free命令显示如下:

[root@Linux /tmp]# free
             total       used       free     shared    buffers     cached
Mem:       4149156    4130412      18744          0      13220    2720160
-/+ buffers/cache:    1397032    2752124
Swap:      6289408        144    6289264第1行
total 内存总数: 4149156
used 已经使用的内存数: 4130412
free 空闲的内存数: 18744
shared 当前已经废弃不用,总是0
buffers Buffer Cache内存数: 13220
cached Page Cache内存数: 2720160

关系:total = used + free

第2行:
-/+ buffers/cache的意思相当于:
-buffers/cache 的内存数:1397032 (等于第1行的 used - buffers - cached)
+buffers/cache 的内存数: 2752124 (等于第1行的 free + buffers + cached)

可见-buffers/cache反映的是被程序实实在在吃掉的内存,而+buffers/cache反映的是可以挪用的内存总数。

第三行单独针对交换分区, 就不用再说了.

为了提高磁盘存取效率, Linux做了一些精心的设计, 除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换), 还采取了两种主要Cache方式:Buffer Cache和Page Cache。前者针对磁盘块的读写,后者针对文件inode的读写。这些Cache有效缩短了 I/O系统调用(比如read,write,getdents)的时间。
2019-01-24 18:43:00 weixin_34204057 阅读数 5

free的运行结果如下:

              total       used       free     shared    buffers     cached
 Mem:      2097152    1090000    1007152          0     290540   9084008
 -/+ buffers/cache:   10021016   123841
 Swap:     25151484     224188   24927296

 

Mem行:

  • total:物理内存总量,total=used+free
  • used:物理内存使用量
  • free:物理内存释放量
  • shared:0,废弃,永远为0
  • buffers:buffer用于作为写入磁盘的内容缓冲区
  • cached:用于从磁盘中读取的内容缓存

-/+ buffers/cache:用于指示应用程序看到的内存情况,也就是,应用程序获取内存大小,表示使用了10021016,剩余123841

转载于:https://www.cnblogs.com/ronghantao/p/10316228.html

2016-04-19 19:00:58 daidaineteasy 阅读数 7996

free,显示内存状态。

1. 命令格式:

free [选项] 

2. 常用选项:

"free -b"Byte 为单位显示内存使用情况。
"free -k"   以 KB 为单位显示内存使用情况。
"free -m"   以 MB 为单位显示内存使用情况。
"free -g"   以 GB 为单位显示内存使用情况。
"free -h"   人性化显示,自动选取合适的单位。(有的系统不支持此选项)
"free -o"   不显示缓冲区调整行信息。
"free -s 2" 持续观察内存使用状况,间隔时间为2秒。
"free -t"   显示内存总和信息。
"free -V"   显示版本信息。

3. 显示信息分析:

这里写图片描述

1) 第一行信息内容分析

total  :总内存

used  :已使用内存

free   :剩余内存

shared :共享内存(一般系统不会用到)

buffers:主要缓存目录项、inode节点等

cached :主要缓存读取过的文件内容

2) 第二行信息内容分析

Mem:物理内存统计

total(7873) = used(3757) + free(4115) 

系统使用内存 = total(7873) - free(4115)

应用使用内存 = total(7873) - free(4115) - buffers(302) - cached(1824)

3) 第三行信息内容分析

第三行中的used(1630) = 第二行中的used(3757) - buffers(302) - cached(1824)(反应的是被应用程序实实在在占用的内存数)

第三行中的free(6242) = 第二行中的free(4115) + buffers(302) + cached(1824)(反应的是可以挪用的内存总数)

4) 第四行信息内容分析

第四行的Swap表示硬盘上交换分区的使用情况,这里我们不去关心。 
2017-05-27 14:32:00 weixin_33672109 阅读数 101

free命令可选参数


  • -b,-k,-m,-g show output in bytes, KB, MB, or GB
  • -h human readable output (automatic unit scaling)
  • -l show detailed low and high memory statistics
  • -o use old format (no -/+buffers/cache line)
  • -t display total for RAM + swap
  • -s update every [delay] seconds
  • -c update [count] times
  • -a show available memory if exported by kernel (>80 characters per line)
  • -V display version information and exit

 

常用参数演示


 

[root@ ~]# free -b   #以Byte为单位显示
             total       used       free     shared    buffers     cached
Mem:    1044611072  552603648  492007424      57344   39006208  124108800
-/+ buffers/cache:  389488640  655122432
Swap:   1572855808  245936128 1326919680
[root@ ~]# free -k   #以KB为单位显示
             total       used       free     shared    buffers     cached
Mem:       1020128     536520     483608         56      38108     121200
-/+ buffers/cache:     377212     642916
Swap:      1535992     240172    1295820
[root@ ~]# free -m   #以MB为单位显示
             total       used       free     shared    buffers     cached
Mem:           996        523        472          0         37        118
-/+ buffers/cache:        368        627
Swap:         1499        234       1265

[root@ ~]# free -h  #人性化输出显示
             total       used       free     shared    buffers     cached
Mem:          996M       521M       474M        56K        35M       118M
-/+ buffers/cache:       368M       628M
Swap:         1.5G       234M       1.2G


[root@ ~]# free -o  #不显示-/+buffers/cache line,不建议
             total       used       free     shared    buffers     cached
Mem:       1020128     536892     483236         56      38468     121284
Swap:      1535992     240172    1295820


[root@ ~]# free -th  #算上swap
             total       used       free     shared    buffers     cached
Mem:          996M       524M       471M        56K        37M       118M
-/+ buffers/cache:       368M       627M
Swap:         1.5G       234M       1.2G
Total:        2.4G       758M       1.7G


[root@ ~]# time free -s 1 -c 3   #表示持续每隔1s更新更新一次mem信息,更新3次
             total       used       free     shared    buffers     cached
Mem:       1020128     537512     482616         56      38868     121328
-/+ buffers/cache:     377316     642812
Swap:      1535992     240172    1295820

             total       used       free     shared    buffers     cached
Mem:       1020128     537512     482616         56      38868     121328
-/+ buffers/cache:     377316     642812
Swap:      1535992     240172    1295820

             total       used       free     shared    buffers     cached
Mem:       1020128     537512     482616         56      38868     121328
-/+ buffers/cache:     377316     642812
Swap:      1535992     240172    1295820


real    0m2.002s
user    0m0.000s
sys    0m0.001s
[root@ ~]#

 

free 命令输出结果信息说明


 

 

                     total       used       free     shared    buffers     cached
Mem:                996M       525M       470M        56K        38M       118M
-/+ buffers/cache:            368M        627M
Swap:               1.5G       234M       1.2G

 

第一行


 

 

  • total: 内存总数
  • used: 已经使用内存数
  • free: 完全空闲内存
  • shared: 多个进程共享的内存
  • buffers: 用于块设备数据缓冲,记录文件系统metadata(目录,权限,属性等)
  • cached: 用于文件内容的缓冲

第一列


  • Mem: 物理内存
  • -/+ buffers/cache: 基于应用角度考虑(计算已使用内存时减去buffers/cache,计算可使用内存时加上buffers/cache)的内存情况,也可理解为真实的内存使用情况.
  • Swap: 交换分区

 

当我们获取系统内存用量的时候我们应该以“-/+ buffers/cached”行的used和free作为参考.因为第一行的buffers和cached被系统作为了缓存(这里包括缓冲了metadata数据和曾经打开过的内容,是为了加快我们系统处理的速度),而这部分缓存可以根据我们的应用内存使用情况随时释放掉(也可以手动释放).

这里的话我系统可用内存实际为:可用627M,已使用368M,而不是525M和470M.

 

buffers/cahed手动释放测试


 

释放前

[root@ ~]# free -h
                       total       used       free         shared    buffers     cached
Mem:                  996M       531M       465M        56K        42M       119M
-/+ buffers/cache:               369M       626M
Swap:                  1.5G       234M       1.2G
[root@ ~]# 

使用命令手动释放

[root@ ~]# echo 3 > /proc/sys/vm/drop_caches
[root@ ~]# free -h
                     total       used       free     shared    buffers     cached
Mem:                996M       391M       604M        56K       420K        26M
-/+ buffers/cache:             364M       631M
Swap:               1.5G       234M       1.2G
[root@ ~]# 

手动释放后我们看到 第一行Mem的used和free有了很大的提升,我们上述的观点得到了验证

 

使用find 命令让buffers增加

[root@ backup]# free -h;find .>/dev/null;free -h
             total       used       free     shared    buffers     cached
Mem:          996M       397M       598M        56K       2.6M        32M
-/+ buffers/cache:       362M       633M
Swap:         1.5G       234M       1.2G
total used free shared buffers cached Mem: 996M 415M 581M 56K 17M 32M
-/+ buffers/cache: 364M 631M Swap: 1.5G 234M 1.2G [root@ backup]#

 

使用cat 命令让cached增加

[root@zwj python]# free -h;find /mydata/backup/python/ -type f|xargs cat>/dev/null 2>&1;free -h
             total       used       free     shared    buffers     cached
Mem:          996M       434M       561M        56K        18M        50M
-/+ buffers/cache:       365M       630M
Swap:         1.5G       234M       1.2G
             total       used       free     shared    buffers     cached
Mem:          996M       767M       228M        56K        20M       367M
-/+ buffers/cache:       379M       617M
Swap:         1.5G       234M       1.2G

 

Done!!!


 

转载于:https://www.cnblogs.com/diaosir/p/6912766.html

linux --free

阅读数 143

没有更多推荐了,返回首页