關于內(nèi)存,從軟件的角度去查看,其實作為一個軟件程序員,大多數(shù)對這個維度的接觸還是蠻多的。linux中有個free命令,其就是查看系統(tǒng)內(nèi)存的情況。
free命令的選項也比較簡單,常用的參數(shù)命令如下。
-b 以Byte為單位顯示內(nèi)存使用情況。
-k 以KB為單位顯示內(nèi)存使用情況。
-m 以MB為單位顯示內(nèi)存使用情況。
-g 以GB為單位顯示內(nèi)存使用情況。
-o 不顯示緩沖區(qū)調(diào)節(jié)列。
-s《間隔秒數(shù)》 持續(xù)觀察內(nèi)存使用狀況。
-t 顯示內(nèi)存總和列。
-V 顯示版本信息。
下面是Linux機器中使用free -m命令看到的內(nèi)存情況。
$ free -mtotal used free shared buff/cache available
Mem: 7763 5507 907 0 1348 1609
Swap: 16197 2940 13257
figo@figo-OptiPlex-9020:~$
可以看到,這個機器上一共有7 763MB物理內(nèi)存。
total:指系統(tǒng)中總的內(nèi)存。這里有兩種內(nèi)存,一個是“Mem”,指的是物理內(nèi)存;另一個是“Swap”,指的是交換磁盤。
used:指程序使用的內(nèi)存。
free:未被分配的物理內(nèi)存大小。
shared:共享內(nèi)存大小,主要用于進程間通信。
buff/cache:buff指的是buffers,用來給塊設備做緩存,而cache指的是page cache,用來給打開的文件做緩存,以提高訪問文件的速度。
available:這是free命令新加的一個選項。當內(nèi)存短缺時,系統(tǒng)可用回收buffers和page cache。那么availabe = free
- buffers + page cache對不對呢?
其實在現(xiàn)在的Linux內(nèi)核中,這個公式不完全正確,因為buffers和page cache里并不是所有的內(nèi)存都可以回收的,比如共享內(nèi)存段、tmpfs和 ramfs 等屬于不可回收的。所以這個公式應該變成:available = free + buffers + page cache –不可回收部分。
在我們寫代碼的時候也會用到malloc()這個函數(shù),如果你申請內(nèi)存沒有用到,那可能是你使用的高級語言,申請內(nèi)存的函數(shù)封裝了malloc。
對于這些函數(shù)瞅一眼就行了,需要用的時候再好好深入學習一下這個里面的東西。了解這個API背后的實現(xiàn)。
-
Linux
+關注
關注
87文章
11304瀏覽量
209535 -
內(nèi)存
+關注
關注
8文章
3025瀏覽量
74060 -
軟件
+關注
關注
69文章
4945瀏覽量
87506
發(fā)布評論請先 登錄
相關推薦
評論