在Linux系统中,使用free -m能够查看系统内存情况java
如下内容大部分参考自:blog.csdn.net/javastart/a…缓存
total | used | free | shared | buffers | cached | |
---|---|---|---|---|---|---|
Mem | 物理内存总量 | 总计分配给缓存(包含buffers 与cache )使用的数量,但其中可能部分缓存并未实际使用 | 未被分配的内存 | 共享内存 | 系统分配但未被使用的buffers数量 | 系统分配但未被使用的cache数量 |
-/+ buffers/cache | - | 实际使用的buffers与cache总量,也是实际使用的内存总量 | 未被使用的buffers与cache和未被分配的内存之和,这就是系统当前实际可用内存 | - | - | - |
Swap | - | - | - | - | - | - |
Cache: 高速缓存,是位于CPU与主内存间的一种容量较小但速度很高的存储器。因为CPU的速度远高于主内存,CPU直接从内存中存取数据要等待必定时间周 期,Cache中保存着CPU刚用过或循环使用的一部分数据,当CPU再次使用该部分数据时可从Cache中直接调用,这样就减小了CPU的等待时间,提 高了系统的效率。Cache又分为一级Cache(L1 Cache)和二级Cache(L2 Cache),L1 Cache集成在CPU内部,L2 Cache早期通常是焊在主板上,如今也都集成在CPU内部,常见的容量有256KB或512KB L2 Cache。.net
Buffer:缓冲区,一个用于存储速度不一样步的设备或优先级不一样的设备之间传输数据的区域。经过缓冲区,能够使进程之间的相互等待变少,从而使从速度慢的设备读入数据时,速度快的设备的操做进程不发生间断。cdn
A buffer is something that has yet to be "written" to disk. A cache is something that has been "read" from the disk and stored for later use.blog
total(Mem) = used(Mem) + free(Mem)进程
total(Mem) = used(buffers/cache) + free(buffers/cache)内存
used(Mem) = buffers(Mem) + cached(Mem) + used(buffers/cache)get
free(buffers/cache) = buffers(Mem) + cached(Mem) + free(Mem)同步