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:         .5G 234M .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:       .5G 234M .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: .5G 234M .2G
total used free shared buffers cached
Mem: 996M 415M 581M 56K 17M 32M
-/+ buffers/cache: 364M 631M
Swap: .5G 234M .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: .5G 234M .2G
total used free shared buffers cached
Mem: 996M 767M 228M 56K 20M 367M
-/+ buffers/cache: 379M 617M
Swap: .5G 234M .2G

Done!!!


使用Free命令查看Linux服务器内存使用状况(-/+ buffers/cache详解)的更多相关文章

  1. 如何使用Linux命令行查看Linux服务器内存使用情况?

    一个服务器,最重要的资源之一就是内存,内存够不够用,是直接关系到系统性能的关键所在. 本文介绍如何查看Linux服务器内存使用情况, 1.free命令 free -m [root@localhost ...

  2. 查看Linux服务器内存使用情况

    一个服务器,最重要的资源之一就是内存,内存够不够用,是直接关系到系统性能的关键所在. 本文介绍如何查看Linux服务器内存使用情况, 1.free命令 free -m [root@localhost ...

  3. 如何查看linux服务器内存使用情况

    1. free命令 free 命令显示系统使用和空闲的内存情况,包括物理内存.交互区内存(swap)和内核缓冲区内存. 直接输入free命令,显示如下   free命令默认是显示单位kb,可以采用fr ...

  4. 查看linux服务器内存信息

    查看服务器内存信息 dmidecode|grep -P -A5 "Memory\s+Device"|grep Size [root@localhost home]# dmideco ...

  5. Linux服务器access_log日志分析及配置详解(二)

    默认nginx / Linux日志在哪个文件夹? 一般在 xxx.xxx.xxxx.com/home/admin 路径下面的error.log文件和access.log文件error_log logs ...

  6. Linux服务器access_log日志分析及配置详解(一)

    nginx的log日志分为access log 和 error log 其中access log 记录了哪些用户,哪些页面以及用户浏览器.ip和其他的访问信息 error log 则是记录服务器错误日 ...

  7. 全面了解 Linux 服务器 - 2. 查看 Linux 服务器的内存使用情况

    2. 查看 Linux 服务器的内存使用情况 liuqian@ubuntu:~$ free -m total used free shared buffers cached Mem: 1983 186 ...

  8. Linux 服务器的网络配置 - 2. 查看 Linux 服务器的进程

    2. 查看 Linux 服务器的进程 1)ps [主要选项] -a  显示系统中所有进程的信息 -e  显示所有进程的信息 -f  显示进行的所有信息 -l   以长格式显示进程信息 -r  只显示正 ...

  9. 使用 dmidecode 查看Linux服务器信息

    使用 dmidecode 查看Linux服务器信息 来源  http://www.laozuo.org/6682.html 对于大部分普通服务器用户来说,我们选择VPS.服务器产品的时候比较关心的是产 ...

随机推荐

  1. 删除Win10的OneDrive

    1.运行 -> gpedit.msc 计算机配置 -> 管理模板 -> Windows组件 -> OneDrive -> 禁止使用OneDrive进行文件储存 -> ...

  2. curl 远程下载图片

    <?php echo httpcopy("http://www.baidu.com/img/baidu_sylogo1.gif"); function httpcopy($u ...

  3. 安装 RabbitMQ (WINDOWS)

    基础知识: RabbitMQ 是一个开源的MQ,使用  Erlang 写成. MQ 全称是Message Queue (消息队列), 是一种应用程序对应用程序的通信方法.通过消息队列,应用程序之间可以 ...

  4. calico性能测试

    硬件环境: 三台虚拟机: 192.168.99.129 master(kube-apiserver.kube-controller-manager.kube-proxy.kube-scheduler. ...

  5. vSphereClient向ESXi主机分配许可证

    ESXi服务器需要使用VMwarevSphereClient进行管理(7.0+版本可以通过浏览器进行管理)在VMware vSphere client可以方便的创建.管理虚拟机,并分配相应的资源.要能 ...

  6. GPU 属性

    struct cudaDeviceProp { ]; /**< 设备的ASCII标识 */ size_t totalGlobalMem; /**< 可用的全局内存量,单位字节 */ siz ...

  7. C0304 备份最后一天所有修改的文件

    #! /bin/bash backupfile=backup-$(date +%m-%d-%Y) archive=${1:-$backupfile} # 上边内容, 参数替换 ${} echo $ar ...

  8. Enterprise Architect UML建模

    UML建模 前言 UML建模资料已经很多了,有人想用有人不用,有人会用也有人不会用,本文只是作者的一篇UML建模总结,不想去写太细,因为真正的你去用下,去画下就基本都会了.工具毕竟是工具,设计和思想才 ...

  9. Windows编程中回调函数的使用心得(MFC篇)

    回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数.回调函数不是由该函数的实现方直接调用,而是在特定 ...

  10. MySQL服务停止,无法启动了~

    怎么解决mysql服务无法启动的问题