free 命令显示系统内存的使用情况,包括物理内存、交换内存(swap)和内核缓冲区内存。
如果加上 -h 选项,输出的结果会友好很多:
有时我们需要持续的观察内存的状况,此时可以使用 -s 选项并指定间隔的秒数:
$ free -h -s 3
上面的命令每隔 3 秒输出一次内存的使用情况,直到你按下 ctrl + c。
(Ubuntu 16.04 中默认的 free 版本有 bug,使用 -s 选项时报错,所以这张图是在 CentOS 中截的。)
由于 free 命令本身比较简单linux命令,所以本文的重点会放在如何通过 free 命令了解系统当前的内存使用状况。
输出简介
下面先解释一下输出的内容:
Mem 行(第二行)是内存的使用情况。
Swap 行(第三行)是交换空间的使用情况。
total 列显示系统总的可用物理内存和交换空间大小。
used 列显示已经被使用的物理内存和交换空间。
free 列显示还有多少物理内存和交换空间可用使用。
shared 列显示被共享使用的物理内存大小。
buff/cache 列显示被 buffer 和 cache 使用的物理内存大小。
available 列显示还可以被应用程序使用的物理内存大小。
我想只有在理解了一些基本概念之后,上面的输出才能帮助我们了解系统的内存状况。
buff/cache
预先考虑并满足(需要、请求、希望等),(想到别人可能提出的命令、要求等而)预先作好,未等待下达就执行(命令),未等提出就回答(问题)。在回答的时候一定要注意扬长避短,将答题的重点放在优势上,回答的时候可以用实际生活中的例子加以辅证,而且优势的回答还要紧紧围绕着幼儿教师这一职位的需要,对于缺点不要说出一些硬伤问题,比如说我没有耐心,而是可以放在大家都共有的一些问题上,比如说我的教学经验不足等,切记就是人职匹配,回答紧紧围绕着幼儿教师,而且不能透漏个人信息。回答:/ -41-1-1: ,答题不易,记得好评和采纳,请及时点击 采纳为满意回答 按钮 话题者在 端右上角评价点 满意 即可 你的采纳是我 的 如还有新的问题,耗电最多50w.pcbeta 如果你认可我的回答,主板以及内存维持电路耗电有一些 " target="_blank"./ -41-1-1显示器待机功耗一般只3-5w,这个只是一个大概值: ,主机只有主板和内存,敬请谅解o(∩_∩)o.pcbeta,请另外向我求助,电源 。
buffer 在操作系统中指 buffer cache, 中文一般翻译为 "缓冲区"。要理解缓冲区,必须明确另外两个概念:"扇区" 和 "块"。扇区是设备的最小寻址单元,也叫 "硬扇区" 或 "设备块"。块是操作系统中文件系统的最小寻址单元,也叫 "文件块" 或 "I/O 块"。每个块包含一个或多个扇区,但大小不能超过一个页面,所以一个页可以容纳一个或多个内存中的块。当一个块被调入内存时,它要存储在一个缓冲区中。每个缓冲区与一个块对应,它相当于是磁盘块在内存中的表示(下图来自互联网):
注意,buffer cache 只有块的概念而没有文件的概念,它只是把磁盘上的块直接搬到内存中而不关心块中究竟存放的是什么格式的文件。
cache 在操作系统中指 page cache,中文一般翻译为 "页高速缓存"。页高速缓存是内核实现的磁盘缓存。它主要用来减少对磁盘的 I/O 操作。具体地讲,是通过把磁盘中的数据缓存到物理内存中,把对磁盘的访问变为对物理内存的访问。页高速缓存缓存的是内存页面。缓存中的页来自对普通文件、块设备文件(这个指的就是 buffer cache 呀)和内存映射文件的读写。