在Linux系統(tǒng)中,使用free -m可以查看系統(tǒng)內(nèi)存狀況

以下內(nèi)容大部分參考自:https://blog.csdn.net/javastart/article/details/54971299
| total | used | free | shared | buffers | cached | |
|---|---|---|---|---|---|---|
| Mem | 物理內(nèi)存總量 | 總計分配給緩存(包含buffers 與cache )使用的數(shù)量,但其中可能部分緩存并未實際使用 | 未被分配的內(nèi)存 | 共享內(nèi)存 | 系統(tǒng)分配但未被使用的buffers數(shù)量 | 系統(tǒng)分配但未被使用的cache數(shù)量 |
| -/+ buffers/cache | - | 實際使用的buffers與cache總量,也是實際使用的內(nèi)存總量 | 未被使用的buffers與cache和未被分配的內(nèi)存之和,這就是系統(tǒng)當前實際可用內(nèi)存 | - | - | - |
| Swap | - | - | - | - | - | - |
cache 和 buffer的區(qū)別:
Cache: 高速緩存,是位于CPU與主內(nèi)存間的一種容量較小但速度很高的存儲器。由于CPU的速度遠高于主內(nèi)存,CPU直接從內(nèi)存中存取數(shù)據(jù)要等待一定時間周 期,Cache中保存著CPU剛用過或循環(huán)使用的一部分數(shù)據(jù),當CPU再次使用該部分數(shù)據(jù)時可從Cache中直接調(diào)用,這樣就減少了CPU的等待時間,提 高了系統(tǒng)的效率。Cache又分為一級Cache(L1 Cache)和二級Cache(L2 Cache),L1 Cache集成在CPU內(nèi)部,L2 Cache早期一般是焊在主板上,現(xiàn)在也都集成在CPU內(nèi)部,常見的容量有256KB或512KB L2 Cache。
Buffer:緩沖區(qū),一個用于存儲速度不同步的設(shè)備或優(yōu)先級不同的設(shè)備之間傳輸數(shù)據(jù)的區(qū)域。通過緩沖區(qū),可以使進程之間的相互等待變少,從而使從速度慢的設(shè)備讀入數(shù)據(jù)時,速度快的設(shè)備的操作進程不發(fā)生間斷。
buffer與cache的區(qū)別:
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.
可以整理出如下等式:
total(Mem) = used(Mem) + free(Mem)
total(Mem) = used(buffers/cache) + free(buffers/cache)
used(Mem) = buffers(Mem) + cached(Mem) + used(buffers/cache)
free(buffers/cache) = buffers(Mem) + cached(Mem) + free(Mem)