下面介紹使用top和free命令查看系統(tǒng)中空閑內存
所以你執(zhí)行top命令看到的
[root@linuxzgf ~]# top
Mem: 8174492k total, 7124268k used,并不是代表你的應用程序已經使用了7.1的內存,這7.1G是包含了:應用程序內存 + 緩沖 + 緩存的內存的,需要用free命令查看.
下面是一個例子(單位是MB):
[root@linuxzgf ~]# free -m
total used free shared buffers cached
Mem: 7982 6811 1171 0 350 5114
-/+ buffers/cache: 1346 6636
Swap: 16935 11 16924
[root@linuxzgf ~]#
在這里例子中,應用程序只使用了1346MB內存,還有6636MB空閑內存可以使用.
一些簡單的計算方法:
物理已用內存 = 實際已用內存 - 緩沖 - 緩存
= 6811M - 350M - 5114M
物理空閑內存 = 總物理內存 - 實際已用內存 + 緩沖 + 緩存
應用程序可用空閑內存 = 總物理內存 - 實際已用內存
應用程序已用內存 = 實際已用內存 - 緩沖 - 緩存
原始解釋:轉至互聯(lián)網:
Linux的基本原則是沒有資源應該被浪費.因此核心會使用盡可能多的RAM,來緩存來自本地和遠程的文件系統(tǒng)的信息.系統(tǒng)做讀寫操作的時候,會將與當前運行的進程相關的數(shù)據(jù)盡量存儲在RAM里.系統(tǒng)報告的緩存是緩沖和頁緩存兩者之和.緩存并不是在進程結束的時候被回收(你可能很快會啟動另外一個進程,需要同樣的數(shù)據(jù)),而是隨需回收–比如,當你啟動一個需要大量內存的進程時,Linux核心會從內存中回收緩存,將得到的內存分配給新的進程.
有些區(qū)域,比如匿名內存映射(mmps)和共享內存區(qū)域,它們被報告為緩存,但不是被核心直接釋放.一般的緩存不映射到進程的地址空間,僅僅是簡單的核心映射,而這些特別的緩存映射到所有掛接到它們上面的進程.