linux free命令


free观察内存使用情况。
free命令常用格式如下:
[root@initroot ~]# free [-b|-k|-m|-g|-h] [-t] [-s N -c N]
选项与参数:
-b :直接输入 free 时,显示的单位是 Kbytes,我们可以使用 b(bytes)、m(Mbytes)、k(Kbytes)以及g(Gbytes)来显示单位喔! 也可以直接让系统自己指定单位 (-h)
-t :在输出的最终结果,显示物理内存与swap的总量。
-s :可以让系统每几秒钟输出一次,不间断的一直输出的意思!对于系统观察挺有效!
-c :与 -s 同时处理~让 free 列出几次的意思~
显示目前系统的内存容量
[root@initroot ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           4952        2715         344         353        1892        1650
Swap:          2047          94        1953
使用 free -m以 MBytes 来显示时,就会出现上面的信息。从上面的输出可以看出系统中有 4952MB 左右的物理内存,交换内存swap 有 2GB 左右, Mem 那一行显示的是物理内存的量, Swap 则是内存交换空间的容量。 total 是总量, used 是已被使用的量, free 则是剩余可用的量。 后面的shared/buffers/cached 则是在已被使用的量当中,用来作为缓冲及快取的量,这些 shared/buffers/cached的用量中, 在系统比较忙碌时, 可以被释出而继续利用!因此后面就有一个 available (可用的) 数值! 。
请看上头范例一的输出,我们可以发现这部测试机根本没有什么特别的服务,但是竟然有 706MB 左 右的 cache 耶! 因为在测试过程中还是有读/写/执行很多的文件嘛!这些文件就会被系统暂时 快取下来,等待下次运作时可以更快速的取出之意! 也就是说,系统是『很有效率的将所有的内存 用光光』,目的是为了让系统的存取效能加速啦!
很多朋友都会问到这个问题『我的系统明明很轻松,为何内存会被用光光?』现在瞭了吧? 被用光 是正常的!而需要注意的反而是 swap 的量。一般来说, swap 最好不要被使用,尤其 swap 最好 不要被使用超过 20% 以上, 如果您发现 swap 的用量超过 20% ,那么,最好还是买物理内存来插吧! 因为, Swap 的效能跟物理内存实在差很多,而系统会使用到 swap , 绝对是因为物理内 存不足了才会这样做的!如此,了解吧!
Linux 系统为了要加速系统效能,所以会将最常使用到的或者是最近使用到的文件数据快取 (cache) 下来, 这样未来系统要使用该文件时,就直接由内存中搜寻取出,而不需要重新读取硬盘,速度上面当然就加快了! 因此,物理内存被用光是正常的喔!

free命令用于查看内存的使用情况。可以显示系统中物理内存和交换内存的总量,还可以显示内核所用的buffer和caches总量。 在我的系统中运行linux命令,显示结果在下面图中所示:

              peter@peter-VirtualBox:~$ free
                            total        used        free      shared  buff/cache   available
              Mem:        6103580     2406632     1642964      257012     2053984     3277328
              Swap:       2097148           0     2097148
            

其中第一行显示系统物理内存的使用情况,
第二行显示的是swap交换内存的使用情况。
total列表示系统中内存的总量,
used列表示已用内存总量,该列的值可通过如下公式获得:used = total - free - buffers – cache,free列表示空闲内存容量,
shared为共享内存已经使用的容量,
buff/cache为buffers和cache所用总量的总和,其中buffers为内核缓冲区所用的内存,cache为页缓存和slabs所用的内存容量。
available列为估算的在不需要swapping内存的情况下,可用物理内存容量。
这里free默认的显示单位是Kbytes,可以用 -b(bytes), -m(Mbytes),-k(Kbytes)或者-g(Gbytes) 来设置要显示的单位。实际中更常用的是使用-h来显示易于阅读的输出。 在我的系统中运行free -h命令,显示结果如下所示:

                peter@peter-VirtualBox:~$ free -h
                                total        used        free      shared  buff/cache   available
                Mem:           5.8G        2.3G        1.5G        256M        2.0G        3.1G
                Swap:          2.0G          0B        2.0G
            

需要注意的是swap的使用量。一般来说, swap的used最好是0,最多不要超过20%。 如果您发现swap的使用量超过20% ,那么说明系统的物理内存已经严重不足了。 更多关于free的用法可以通过free -help命令查看或者man free查看更加详细的信息。


在linux下查看内存使用情况的最简单方法是使用free命令,free命令可以显示系统中物理内存和交换内存的总量, 还可以显示内核所用的buffer和caches总量。
在我的系统中运行linux命令,显示结果如下:
其中第一行显示系统物理内存的使用情况,第二行显示的是swap交换内存的使用情况。
total列表示系统中内存的总量,
used列表示已用内存总量,该列的值可通过如下公式获得:used = total - free - buffers – cache,free列表示空闲内存容量,
shared为共享内存已经使用的容量,
buff/cache为buffers和cache所用总量的总和,其中buffers为内核缓冲区所用的内存,cache为页缓存和slabs所用的内存容量。
available列为估算的在不需要swapping内存的情况下,可用物理内存容量。
这里free默认的显示单位是Kbytes,可以用 -b(bytes), -m(Mbytes),-k(Kbytes)或者-g(Gbytes)
来置顶要显示的单位。实际中更常用的是使用-h来显示易于阅读的输出。在我的系统中运行free -h命令,显示结果如下:
需要注意的是 swap 的使用量。一般来说, swap 的used最好是0,最多不要超过20%。如果您发现 swap 的使用量超过 20% ,那么说明系统的物理内存已经严重不足了。
更多关于free的用法可以通过free -help命令查看或者man free查看更加详细的信息
第二种查看linux内存使用情况的方法是使用top命令,top输出的第三行和第四行显示当前系统物理内存和交换内存的使用情况,
top命令还可以查看每个进程的内存使用率,在我的系统中运行top命令的显示结果如下所示:
free和top命令显示的内存信息都是通过读取/proc/meminfo文件生成的,所以我们也可以通过查看/proc/meminfo文件来查看系统的内存使用情况
以上介绍的方法都是在命令行环境下查看,也可以通过图形界面查看系统的内存使用情况,图形界面查看内存使用情况比较常用的工具是System Monitor。 在linux mint下System Monitor显示结果如下,
还有一些命令也可以显示内存的使用情况,比如ps、vmstat、memstat等。但这不是这些工具的主要作用。这里不做详细阐述

Usage:
free [options]
Options:
-b, --bytes show output in bytes
--kilo show output in kilobytes
--mega show output in megabytes
--giga show output in gigabytes
--tera show output in terabytes
--peta show output in petabytes
-k, --kibi show output in kibibytes
-m, --mebi show output in mebibytes
-g, --gibi show output in gibibytes
--tebi show output in tebibytes
--pebi show output in pebibytes
-h, --human show human-readable output
--si use powers of 1000 not 1024
-l, --lohi show detailed low and high memory statistics
-t, --total show total for RAM + swap
-s N, --seconds N repeat printing every N seconds
-c N, --count N repeat printing N times, then exit
-w, --wide wide output
--help display this help and exit
-V, --version output version information and exit
For more details see free(1).

本文由initroot编辑整理,转载请注明www.initroot.com

100次点赞 100次阅读