CentOS下top和free命令查看系統中空閑記憶體
下面介紹使用top和free命令查看系統中空閑記憶體
所以你執行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
物理空閑記憶體 = 總實體記憶體 - 實際已用記憶體 + 緩衝 + 緩衝
應用程式可用空閑記憶體 = 總實體記憶體 - 實際已用記憶體
應用程式已用記憶體 = 實際已用記憶體 - 緩衝 - 緩衝
原始解釋:轉至互連網:
Linux的基本原則是沒有資源應該被浪費.因此核心會使用儘可能多的RAM,來緩衝來自本地和遠端檔案系統的資訊.系統做讀寫操作的時候,會將與當前啟動並執行進程相關的資料盡量儲存在RAM裡.系統報告的緩衝是緩衝和頁緩衝兩者之和.緩衝並不是在進程結束的時候被回收(你可能很快會啟動另外一個進程,需要同樣的資料),而是隨需回收–比如,當你啟動一個需要大量記憶體的進程時,Linux核心會從記憶體中回收緩衝,將得到的記憶體配置給新的進程.
有些地區,比如匿名記憶體映射(mmps)和共用記憶體地區,它們被報告為緩衝,但不是被核心直接釋放.一般的緩衝不映射到進程的地址空間,僅僅是簡單的核心映射,而這些特別的緩衝映射到所有掛接到它們上面的進程.