在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)同步