linux下查看内存命令free。但是,linux内存的实际使用,和输出的字面意思还是有些差别,linux真正可用的内存不是free项直接看到的。如下:
[root@dbrg-1 ~]# free
total used free shared buffers cached
Mem: 319844 83632 236212 0 19128 46116
-/+ buffers/cache: 18388 301456
Swap: 2096472 0 2096472
total 内存总数
used 已经使用的内存数
free 空闲的内存数
shared 多个进程共享的内存总额
buffers Buffer Cache和cached Page Cache 磁盘缓存的大小
Swap 虚拟内存
【注】红色行和蓝色行的used/free意义是不同的。红色行是从系统的角度来看,buffers/cached 都是属于被使用,蓝色行是从应用程序角度来看,对于应用程序来说,buffers/cached 是等于可用的,因为buffer/cached是为了提高文件读取的性能,当应用程序需在用到内存的时候,buffer/cached会很快地被回收。
对于Mem行:total = used + free ((319844 = 83632 + 236212 )
对于-/+ buffers/cache行:
total = used + free (319844 = 18388 + 301456)
used = used + buffers + cached (83632 = 18388 + 19128 + 46116 )
转:
为了提高磁盘存取效率, Linux做了一些精心的设计, 除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换), 还采取了两种主要Cache方式:Buffer Cache和Page Cache。前者针对磁盘块的读写,后者针对文件inode的读写。这些Cache有效缩短了 I/O系统调用(比如read,write,getdents)的时间。
转载于:https://blog.51cto.com/chenchao40322/583908