free命令常用参数详解

                     free命令常用参数详解

                                       作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

 

 

 

  在运维期间我们会经常去查看服务器硬件信息,比如说内存,大家可能知道看内存用“[root@yinzhengjie ~]# cat /proc/meminfo”,看cpu信息就用"[root@yinzhengjie ~]# cat /proc/cpuinfo",甚至用top命令也能看到相关的信息,不过在linux系统中有专门查看内存的命令哟,他是我们今天的主角。让我们一起来学习一下吧。

 

一.语法格式: free [-b | -k | -m] [-o] [-s delay ] [-t] [-l] [-V]

1."-b"参数:以字节为单位显示内存使用情况。

1 [root@yinzhengjie ~]# free -b 
2              total       used       free     shared    buffers     cached
3 Mem:    8237436928 8098242560  139194368          0  159383552 6659211264
4 -/+ buffers/cache: 1279647744 6957789184
5 Swap:   8371822592   61120512 8310702080
6 [root@yinzhengjie ~]#
free -b

2."-k"参数:以“kb”为单位显示内存使用情况。(默认不加参数的话,直接在命令行中敲击“free”,就会默认打印-k的参数。)

1 [root@yinzhengjie ~]# free -k
2              total       used       free     shared    buffers     cached
3 Mem:       8044372    7907804     136568          0     155648    6503448
4 -/+ buffers/cache:    1248708    6795664
5 Swap:      8175608      59688    8115920
6 [root@yinzhengjie ~]#
free -k

3.“-m”参数:以“mb”为单位显示内存使用情况。

1 [root@yinzhengjie ~]# free -m
2              total       used       free     shared    buffers     cached
3 Mem:          7855       7722        132          0        152       6351
4 -/+ buffers/cache:       1219       6636
5 Swap:         7983         58       7925
6 [root@yinzhengjie ~]# 
free -m

4.“-s”参数:后面需要跟个数字,单位是"s",显示每隔多少秒数来显示一次内存使用情况。

 1 [root@yinzhengjie ~]# free -m -s 1   
 2              total       used       free     shared    buffers     cached
 3 Mem:          7855       7723        132          0        152       6351
 4 -/+ buffers/cache:       1219       6636
 5 Swap:         7983         58       7925
 6 
 7              total       used       free     shared    buffers     cached
 8 Mem:          7855       7723        132          0        152       6351
 9 -/+ buffers/cache:       1219       6636
10 Swap:         7983         58       7925
11 
12              total       used       free     shared    buffers     cached
13 Mem:          7855       7723        132          0        152       6351
14 -/+ buffers/cache:       1219       6636
15 Swap:         7983         58       7925
16 
17              total       used       free     shared    buffers     cached
18 Mem:          7855       7723        132          0        152       6351
19 -/+ buffers/cache:       1219       6636
20 Swap:         7983         58       7925
21 
22              total       used       free     shared    buffers     cached
23 Mem:          7855       7722        132          0        152       6351
24 -/+ buffers/cache:       1219       6636
25 Swap:         7983         58       7925
26 
27              total       used       free     shared    buffers     cached
28 Mem:          7855       7722        132          0        152       6351
29 -/+ buffers/cache:       1219       6636
30 Swap:         7983         58       7925
31 
32              total       used       free     shared    buffers     cached
33 Mem:          7855       7722        132          0        152       6351
34 -/+ buffers/cache:       1219       6636
35 Swap:         7983         58       7925
36 
37              total       used       free     shared    buffers     cached
38 Mem:          7855       7723        132          0        152       6351
39 -/+ buffers/cache:       1219       6636
40 Swap:         7983         58       7925
41 
42              total       used       free     shared    buffers     cached
43 Mem:          7855       7723        132          0        152       6351
44 -/+ buffers/cache:       1219       6636
45 Swap:         7983         58       7925
46 
47              total       used       free     shared    buffers     cached
48 Mem:          7855       7723        132          0        152       6351
49 -/+ buffers/cache:       1219       6635
50 Swap:         7983         58       7925
51 
52              total       used       free     shared    buffers     cached
53 Mem:          7855       7723        132          0        152       6351
54 -/+ buffers/cache:       1219       6635
55 Swap:         7983         58       7925
56 
57              total       used       free     shared    buffers     cached
58 Mem:          7855       7723        132          0        152       6351
59 -/+ buffers/cache:       1219       6636
60 Swap:         7983         58       7925
61 
62 ^C
63 [root@yinzhengjie ~]# 
free -m -s 1

5.“-t”参数:在末尾活多出一行“Total”,表示显示总和列

 1 [root@yinzhengjie ~]# free -t -m -s 1
 2              total       used       free     shared    buffers     cached
 3 Mem:          7855       7724        131          0        152       6352
 4 -/+ buffers/cache:       1220       6635
 5 Swap:         7983         58       7925
 6 Total:       15839       7782       8057
 7 
 8              total       used       free     shared    buffers     cached
 9 Mem:          7855       7724        131          0        152       6352
10 -/+ buffers/cache:       1220       6635
11 Swap:         7983         58       7925
12 Total:       15839       7782       8057
13 
14              total       used       free     shared    buffers     cached
15 Mem:          7855       7724        131          0        152       6352
16 -/+ buffers/cache:       1220       6635
17 Swap:         7983         58       7925
18 Total:       15839       7782       8057
19 
20              total       used       free     shared    buffers     cached
21 Mem:          7855       7724        131          0        152       6352
22 -/+ buffers/cache:       1220       6635
23 Swap:         7983         58       7925
24 Total:       15839       7782       8057
25 
26 ^C
27 [root@yinzhengjie ~]# 
free -t -m -s 1

6.“-o”参数:不显示包含“-/+ buffers/cache”的这一列,即不显示缓冲区调节列。

 1 [root@yinzhengjie ~]# free -t  -o -m -s 1 
 2              total       used       free     shared    buffers     cached
 3 Mem:          7855       7724        131          0        152       6352
 4 Swap:         7983         58       7925
 5 Total:       15839       7782       8057
 6 
 7              total       used       free     shared    buffers     cached
 8 Mem:          7855       7724        131          0        152       6352
 9 Swap:         7983         58       7925
10 Total:       15839       7782       8056
11 
12              total       used       free     shared    buffers     cached
13 Mem:          7855       7724        131          0        152       6352
14 Swap:         7983         58       7925
15 Total:       15839       7782       8056
16 
17              total       used       free     shared    buffers     cached
18 Mem:          7855       7724        131          0        152       6352
19 Swap:         7983         58       7925
20 Total:       15839       7782       8056
21 
22              total       used       free     shared    buffers     cached
23 Mem:          7855       7724        131          0        152       6352
24 Swap:         7983         58       7925
25 Total:       15839       7782       8057
26 
27 ^C
28 [root@yinzhengjie ~]# 
free -t -o -m -s 1

 

二.如何去看输出的结果

我上面举了那么多例子,我生活中最常用的就是:“free -m”,那么我们如何看这个输出的结果呢?

 

      1               2          3           4        5         6           7              8    
2                   total       used       free     shared    buffers     cached         #第一行
3    Mem:            7855       7718        137          0        152       6348         #第二行
4    -/+ buffers/cache:         1218       6637                                          #第三行
5    Swap:           7983         58       7925                                          #第四行

我们知道这个是"free -m"的输出结果,我只不过是将结果取出来了,然后进行标号,用坐标的方式来讲解如何查看内容:
第一行:
total(2,3):总计物理内存的大小。
used(2,4):已使用的空间。
free2,5):可用的空间。
shared(2,6):多个进程共享的内存总额。现在已经deprecated,其值总是0(当然在一些系统上也可能不是0,主要取决于free命令是怎么实现的)。
buffers(2,7):用于存放要输出到disk(块设备)的数据的,[A buffer is something that has yet to be "written" to disk. ]即提高了内存网硬盘加速写的能力
cached(2,8):存放从disk上读出的数据,['A cache is something that has been "read" from the disk and stored for later use.'] (cached往往比buffers数字大就是为了提高IO read的性能)即提高了加速读的能力
第二行:(输出时从操作系统(OS)来看的)
看了第一行的解释,我能知道了第一行输出时从操作系统(OS)来看的。也就是说,从OS的角度来看
(3.3):即7855MB物理内存;
(3,4):7718MB已经被使用了;
(3,5):137MB可用被使用。
因此,我们可以得到一个公式哟:(3.3)= (3,4)+ (3,5)
第三行:(是从一个应用程序的角度看系统内存的使用情况)
(44,):即-buffers/cache,表示一个应用程序认为系统被用掉多少内存;
(4,5):即+buffers/cache,表示一个应用程序认为系统还有多少内存;
因此我们又可以得到2个公式哟:
                            1>.(4,4) = (3,4)  - (3,7) - (3,8)
                            2>.(4,5) = (3,5)  + (3,7) - (3,8)
第四行:
free的输出一共有四行,第四行为交换区的信息,分别是交换的总量(total),使用量(used)和有多少空闲的交换区(free'''
提示:
  free命令由procps.*.rpm提供(在Redhat系列的OS上)。free命令的所有输出值都是从/proc/meminfo中读出的。“-/+ buffers/cache”其对应的used表示实际使用内存,对应的free对应的才是实际空闲的内存。
'''

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值