linux 查看内存使用状态 free命令

 一、free命令介绍

free 命令可以查看当前系统的总内存大小以及使用内存的情况。CentOS7 系统的 free 命令显示结果比 CentOS 6 更加简洁一些,但大体上的内容是一致的。

二、基本用法

[root@localhost ~]# free
              total        used        free      shared  buff/cache   available
Mem:         999696      197964      268528        6408      533204      635332
Swap:       2097148         460     2096688

上面是说明,第一行是内存的使用情况,第二行是交换分区的使用情况

三、命令参数:

-b:以Byte为单位显示内存使用情况;
-k:以KB为单位显示内存使用情况;
-m:以MB为单位显示内存使用情况;
-o:不显示缓冲区调节列;
-s<间隔秒数>:持续观察内存使用状况;
-t:显示内存总和列;
-V:显示版本信息。

四、命令演示

free -m 按 M 显示

[root@localhost ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:            976         193         262           6         520         620
Swap:          2047           0        2047

free -h 按合适单位显示

[root@localhost ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           976M        193M        262M        6.3M        520M        620M
Swap:          2.0G        460K        2.0G

五、计算方式:

[root@localhost ~]# free -m
             total       used       free     shared    buffers     cached
Mem:          7869       7651        218          1        191       5081
-/+ buffers/cache:       2378       5490
Swap:          478        139        339

total1:表示物理,内存总量

used1:总计分配给缓存(包含Buffer和cache)使用的数量,但其中可能部分缓存并未实际使用

free1:未被分配的内存

shared1:共享内存,一般系统不会用到,这里也不讨论

buffers1:系统分配但未被使用的buffers数量

cached1:系统分配但未被使用的cache数量

used2:实际使用的buffers和cache总量,也是实际使用的内存总量

free2:未被使用的Buffers和cache和未被分配的内存之和,这就是系统当前实际可用内存。

如下公式:

total1=used1(buffers1+cached1+used2)+free1   7869=7651(191+5081+2378)+218

total1=used2+free2(buffers1+cached1+free1)     7869=2378+5490(191+5081+218)

buffer和cache也是内存的一部分,如果需要,可以释放这2部分的内存

pagecache和buffercache的区别:

pagecache实际上是针对文件系统的,是文件的缓存,在文件上的数据会缓存到pagecahce,文件的逻辑层需要映射到实际的物理磁盘,这种映射关系由文件系统来完成,当pagecache中的数据需要刷新时,pagecache中的数据交给buffercache。但这种处理在2.6版本内核之后就变得简单了,没有真正意义的cache操作。

buffercache是针对磁盘块的缓存,也就是在没有文件系统的情况下,直接对磁盘操作的数据会缓存到buffercache中,如:文件系统的元数据都会缓存到buffercache中。简单来说,

pagecache用来缓存文件数据,buffercache用来缓存磁盘数据。在有文件系统的情况下,对文件操作,数据会缓存到pagecache。若直接采用dd工具对磁盘进行读写,那么数据会

缓存到buffercache。

发布了44 篇原创文章 · 获赞 6 · 访问量 6323

猜你喜欢

转载自blog.csdn.net/annita2019/article/details/104270662