我們經常可以在Linux系統上看到一種情況,明明我沒跑什麼工作負載,剩餘的記憶體卻所剩無多,其實只是我們不了解Linux的記憶體管理方法而已。
一直以來我們習慣了Windows的工作管理員,會將記憶體的使用邏輯二分為已經佔用與剩餘可用記憶體,然後拿這個邏輯去檢視Linux的記憶體使用狀況,便會出現很大的落差,原因是因為在Linux的記憶體管理方法上,佔用的記憶體未必真的被佔用了,Linux經常在佔用的記憶體中規劃了一塊比較類似像快取或緩衝一樣空間,閒置在那邊,方便系統或應用程式存取,而不是真的被應用程式所使用。
那麼到底我還剩下多少Free的記憶體可以使用呢?我的機器負載狀況究竟如何?需不需要擴充記憶體?以下分別從CentOS6和CentOS7的free指令來做說明。
CentOS6
以free指令檢視記憶體使用情況[root@centos6 ~]# free -m total used free shared buffers cached Mem: 3833 3634 199 0 235 3077 -/+ buffers/cache: 320 3513 Swap: 3967 4 3963
m參數代表是以megabyte來顯示,從第一行的Mem 開始解說:
total 3833 單位是megabyte,表示此Linux系統總共擁有約4GB的實體記憶體
used 3634 代表正在被Linux管理的記憶體空間有多少而不是佔用喔~
free 199 代表Linux壓根就沒接觸到、沒管理到的記憶體(絕對閒置)
shared 0 類似Remdisk的一種空間,也是Linux用來加速工作效率的一種方法
buffers 235 Linux快取的一種方式,buffers所規劃的記憶體空間
cached 3077 Linux快取的一種方式,cache所規劃的記憶體空間
第二行-/+ buffers/cache 解說:
used 320
代表真正被應用程式所佔用的記憶體空間,其總和為第一行的used-buffers-cached
free 3513
代表你真正可用的剩餘記憶體,其總和為第一行的buffers+cached+free
第三行Swap 解說:
total 3967
代表你建置Linux時所設置的虛擬記憶體總共空間
used 4
代表已經使用了多少虛擬記憶體,此數值過大通常代表你真正剩餘可用的實體記憶體可能要不夠用了
used 3634 代表正在被Linux管理的記憶體空間有多少而不是佔用喔~
free 199 代表Linux壓根就沒接觸到、沒管理到的記憶體(絕對閒置)
shared 0 類似Remdisk的一種空間,也是Linux用來加速工作效率的一種方法
buffers 235 Linux快取的一種方式,buffers所規劃的記憶體空間
cached 3077 Linux快取的一種方式,cache所規劃的記憶體空間
第二行-/+ buffers/cache 解說:
used 320
代表真正被應用程式所佔用的記憶體空間,其總和為第一行的used-buffers-cached
free 3513
代表你真正可用的剩餘記憶體,其總和為第一行的buffers+cached+free
第三行Swap 解說:
total 3967
代表你建置Linux時所設置的虛擬記憶體總共空間
used 4
代表已經使用了多少虛擬記憶體,此數值過大通常代表你真正剩餘可用的實體記憶體可能要不夠用了
所以請不要再誤會囉!used只是代表被Linux管理的記憶體空間大小,快取空間的配置並不代表它被佔用了,真正剩餘可用的記憶體還是要參照上面紅字的部分!
CentOS7
以free指令檢視記憶體使用情況[root@centos7 ~]# free -m total used free shared buff/cache available Mem: 7822 2731 241 422 4850 4340 Swap: 3967 173 3794m參數代表是以megabyte來顯示,從第一行的Mem 開始解說:
total 7822 單位是megabyte,表示此Linux系統總共擁有約8GB的實體記憶體
free 241 代表Linux壓根就沒接觸到、沒管理到的記憶體(絕對閒置)
shared 422 類似Remdisk的一種空間,也是Linux用來加速工作效率的一種方法
buff/cache 4850 buffers+cache,Linux所分配的快取空間大小
available 4340 這裡顯示的是你真正可用的剩餘記憶體
第二行Swap 解說:
total 3967
代表你建置Linux時所設置的虛擬記憶體總共空間
used 173
代表已經使用了多少虛擬記憶體,此數值過大通常代表你真正剩餘可用的實體記憶體可能要不夠用了
總的來說,對於一位系統管理員真正要注意的數字就是上面被標示為紅字的數值,也就是Linux系統真正剩餘可用的記憶體空間,當空間不足的時候,便是要加機器或擴充記憶體的時候囉!
0 Comments:
張貼留言