Linux 中 free 命令可以显示 linux 系统中空闲的、已用的实体内存及 swap 内存, 及被核心使用的 buffer. 在 Linux 系统监控的工具中,free 命令是最经常使用的命令之一.
命令格式 :
free [-b|-k|-m|-g] [-l] [-o] [-t] [-s delay] [-c count] [-V]
命令功能 :
free 命令显示系统使用和空闲的内存情况, 包括实体内存、互动区内存 (swap) 和核心缓冲区内存, 共享内存将被忽略.
命令引数 :
-b/-k/-m/g ==> 分别以 Byte/KB/MB/GB 为单位显示内存使用情况;
-l ==> 显示详细的 low 和 high 的内存统计情况;
-o ==> 不显示 WordPress 加速缓存区 (-/+ buffers/cache);
-t ==> 显示内存总和列;
-s
-c
-V ==> 显示版本资讯;
free 数值说明 :
total ==> 总计实体内存的大小;
used ==> 已使用内存大小;
free ==> 空闲内存大小;
shared ==> 多个程序共享的内存总额;
buffer/cached ==> 磁碟 WordPress 加速缓存的大小;
注意:
第二行 (Mem) 的 used/free 与第三行 (-/+ buffer/cache) 的 used/free 区别 : “使用角度”
第二行是从”OS” 的角度来看, 因为对于 OS,buffer/cache 都是属于被使用, 所以它的可用内存是 1235900, 已用内存是 686824, 其中包括, 核心 (OS) 使用+Application(应用程式) 使用+buffers+cached.
第三行所指的是从 “应用程式” 角度来看, 对于应用程式来说,buffer/cached 是等于可用的, 因为 buffer/cached 是为了提高档案读取的效能, 当应用程式需在用到内存的时候,buffer/cached 会很快地被回收. 所以从应用程式的角度来说, 可用内存=系统 free +buffers + cached. 例如本机 : 1725388=1235932+48736+440752.
buffers 与 cached 区别 :
cached : WordPress 加速缓存内存, 是位于 CPU 与主内存间的一种容量较小但速度很高的储存器;
buffers : 缓冲区, 一个用于储存速度不同步的装置或优先顺序不同的装置之间的传输资料的区域;
两者都是 RAM 中的资料, 简单来说,buffers 是即将被写入磁碟的, 而 cache 是被从磁碟中读出来的.
buffers 是由各种程序分配的, 由程序和系统一起管理. 被用在如输入伫列等方面, 一个简单的例子, 如某个程序要求有多个栏位读入, 在所有栏位被读入完整之前, 程序把先前读入的栏位放在 buffer 中储存;
cached 经常被用在磁碟的 I/O 请求上, 如果有多个程序都要访问某个档案, 于是该档案便被做成 cache 以方便下次被访问, 这样可提供系统效能;
综上所述可以理解为 cache 系统管理,buffer 由程序 check 系统一起管理.