举杯邀月

linux 常用命令 free,显示内存的使用情况

摘要:在实际的工作中,我们经常会用到free这个命令,它可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。具体我们一起来学习一下。

在实际的工作中,我们经常会用到free这个命令,它可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。具体我们一起来学习一下。

free 的具体选项参数有:

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

-b、-k、-m、-g参数的返回结果仅仅是单位的不同:

[root@injurys]$ free -g
             total       used       free     shared    buffers     cached
Mem:            31          5         26          0          0          1
-/+ buffers/cache:          2         28
Swap:            3          0          3
[root@injurys]$ free -m
             total       used       free     shared    buffers     cached
Mem:         32075       5206      26869          0        921       1347
-/+ buffers/cache:       2937      29138
Swap:         3999          0       3999
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10

返回结果的内容解释为:

第一部分 Mem:

> total:      # 内存总数;
> used:       # 已经使用的内存数;
> free:       # 空闲的内存数;
> shared:     # 当前已经废弃不用;
> buffers:    # 缓存内存数;
> cached:     # 缓存内存数。
# 关系:total = used + free
1
2
3
4
5
6
7
1
2
3
4
5
6
7

第二部分 -/+ buffers/cache:

(-buffers/cache) used内存数:第一部分Mem行中的 used – buffers – cached
(+buffers/cache) free内存数: 第一部分Mem行中的 free + buffers + cached
1
2
1
2

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

第三部分 Swap:

交换分区SWAP也就是我们通常所说的虚拟内存。

在centos7中新增了一个 -h 参数

它会自动根据内存的大小,自动转换成合适的单位,默认的计算倍数是 1024 。

[root@injurys]$ free -h
              total        used        free      shared  buff/cache   available
Mem:           1.8G        1.4G         70M         32K        315M        193M
Swap:          2.0G        1.3G        707M
1
2
3
4
1
2
3
4

作者:举杯邀月

出处: http://www.hug-code.cn/archives/5fc70b26e9cba.html

2020-07-29 标签: linux