詳細分析Linux服務器內存
Linux服務器內存還剩多少我們會關心,但是我們更應該關心Linux服務器內存工作方式,分配方式,這樣我們就會不必去擔心到底還剩多少內存,怎么才能保證內存足夠我們來使用,和分配。
1. 首先對free -m查看結果進行分析
view plaincopy to clipboardprint?
linux-8v2i:~ # free -m
total used free shared buffers cached
Mem: 3952 2773 178 0 130 1097
-/+ buffers/cache: 1545 2406
Swap: 2055 0 2055
linux-8v2i:~ # free -m
total used free shared buffers cached
Mem: 3952 2773 178 0 130 1097
-/+ buffers/cache: 1545 2406
Swap: 2055 0 2055
各參數含義:
total:總物理內存
used:已使用內存
free:完全未被使用的內存
shared:應用程序共享內存
buffers:緩存,主要用于目錄方面,inode值等
cached:緩存,用于已打開的文件
-buffers/cache:應用程序使用的內存大小,used減去緩存值
+buffers/cache:所有可供應用程序使用的內存大小,free加上緩存值
其中:
total = used + free
-buffers/cache=used-buffers-cached,這個是應用程序真實使用的內存大小
+buffers/cache=free+buffers+cached,這個是服務器真實還可利用的內存大小
2. Linux的內存分配方式
大家都知道,Linux服務器為了提高效率,會提前申請內存,即使這些內存沒有被具體應用使用,Linux也會提前申請這些內存,然后利用這些內存做緩存用,即將剛打開的文件系統存入cache中,這樣對應的服務器free值會越來越少,buffers和cached會越來越大,因此給大家表象就是內存越來越少了,大家就緊張了;其實,大家完全不用緊張,發現Linux服務器內存不足時,會自動清理cached區域,釋放內存,然后繼續增大 cache,free繼續減少。
【編輯推薦】