free命令可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。

(1)用法:

用法: free [选项参数]

(2)功能:

功能: free 命令显示系统使用和空闲的内存情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。共享内存将被忽略。

(3)选项参数:

   -b         以Byte为单位显示内存使用情况。 
   -k            以KB为单位显示内存使用情况。
   -m         以MB为单位显示内存使用情况。 
   -g         以GB为单位显示内存使用情况。 
   -s         每3秒执行一次free操作
   -h(human)      自动将数值转换为人类易读形式 
   -c(count)      展示结果count次,需与-s配合使用
   -s(seconds)    动态刷新内存使用情况的间隔 

以人类易读的方式展示,每10秒刷新一次,一共刷新3次

[root@ccd-sdv3 performance]# free -h -c 3 -s 10
              total        used        free      shared  buff/cache   available
Mem:           4.7G        517M        3.4G         64M        805M        3.8G
Swap:            9G          0B          9G

              total        used        free      shared  buff/cache   available
Mem:           4.7G        517M        3.4G         64M        805M        3.8G
Swap:            9G          0B          9G

              total        used        free      shared  buff/cache   available
Mem:           4.7G        517M        3.4G         64M        805M        3.8G
Swap:            9G          0B          9G
[root@ccd-sdv3 performance]#

实例

[root@cicada-dns ~]# free      
          total         used        free        shared    buff/cache   available      
Mem:       24431236      738940    22253900      195212     1438396    23124472      
Swap:       8388604        0       8388604

C (Buffers/Cached) 是算作used还是算作free呢?一方面,它们已经被分配了,可以算作used;另一方面,当程序需要时,可以回收它们来使用,可以算作free。所以,怎么算都合理。

扩展

free 命令数据由来

  free命令显示了当前系统内存使用情况,其数据取自/proc/meminfo文件。这里我们cat 一下。可见,在这个文件中,数据的存储就是以KB为单位,所以free的默认值也是KB。

[root@ccd-sdv3 performance]# cat /proc/meminfo
MemTotal:        4909988 kB
MemFree:         3555932 kB
MemAvailable:    4014428 kB
Buffers:          177152 kB
Cached:           511280 kB
SwapCached:            0 kB
Active:           608332 kB
Inactive:         477796 kB
Active(anon):     444412 kB
Inactive(anon):    19392 kB
Active(file):     163920 kB
Inactive(file):   458404 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:      10485756 kB
SwapFree:       10485756 kB
Dirty:                 8 kB
Writeback:             0 kB
AnonPages:        397664 kB
Mapped:           107960 kB
Shmem:             66112 kB
Slab:             136428 kB
SReclaimable:     100024 kB
SUnreclaim:        36404 kB
KernelStack:        5872 kB
PageTables:        23540 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    12940748 kB
Committed_AS:    2613488 kB
VmallocTotal:   34359738367 kB
VmallocUsed:    67431928 kB
VmallocChunk:   34288431100 kB
HardwareCorrupted:     0 kB
AnonHugePages:    163840 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:      213852 kB
DirectMap2M:     2863104 kB
DirectMap1G:     2097152 kB
[root@ccd-sdv3 performance]#