linux free命令詳解

來源:互聯網
上載者:User

linux中的free命令大家都很常用,可大家都清楚free輸出的各行的意思及它們之間的關係嗎?

[root@localhost ~]# free              total       used       free     shared    buffers     cached Mem:       4038116    4010292      27824          0     205228    1343276 -/+ buffers/cache:    2461788    1576328 Swap:      8289500     254076    8035424

第一行: total 實體記憶體總數: 4038116 used 已經使用的記憶體數: 4010292 free 閒置記憶體數: 27824 shared 當前已經廢棄不用,總是0 buffers 即Buffer Cache記憶體數: 205228 cached 即Page Cache記憶體數: 1343276

關係:total = used + free

第二行: -/+ buffers/cache的意思相當於: -buffers/cache 的記憶體數:2461788 (等於第1行的 used – buffers – cached),實際上是應用程式所使用的記憶體。 +buffers/cache 的記憶體數: 1576328 (等於第1行的 free + buffers + cached),是對應用程式來說還剩餘的記憶體。

可見-buffers/cache反映的是被程式實實在在吃掉的記憶體,而+buffers/cache反映的是可以挪用的記憶體總數。 對作業系統來講buffers/cached 都是屬於被使用,所以它認為free只有27824. 對應用程式來講是(-/+ buffers/cach).buffers/cached 是等同可用的,因為buffer/cached是為了提高程式執行的效能,當程式使用記憶體時,buffer/cached會很快地被使用。

第三行是交換分區swap, 列出已使用、閒置swap.

那buffers和cached都是緩衝,兩者有什麼區別呢? 為了提高磁碟存取效率, Linux做了一些精心的設計, 除了對dentry進行緩衝(用於VFS,加速檔案路徑名到inode的轉換), 還採取了兩種主要Cache方式:Buffer Cache和Page Cache。前者針對磁碟塊的讀寫,後者針對檔案inode的讀寫。這些Cache有效縮短了 I/O系統調用(比如read,write,getdents)的時間。 磁碟的操作有邏輯級(檔案系統)和物理級(磁碟塊),這兩種Cache就是分別緩衝邏輯和物理級資料的。 Page cache實際上是針對檔案系統的,是檔案的緩衝,在檔案層面上的資料會緩衝到page cache。檔案的邏輯層需要映射到實際的物理磁碟,這種映射關係由檔案系統來完成。當page cache的資料需要重新整理時,page cache中的資料交給buffer cache,因為Buffer Cache就是緩衝磁碟塊的。但是這種處理在2.6版本的核心之後就變的很簡單了,沒有真正意義上的cache操作。 Buffer cache是針對磁碟塊的緩衝,也就是在沒有檔案系統的情況下,直接對磁碟進行操作的資料會緩衝到buffer cache中,例如,檔案系統的中繼資料都會緩衝到buffer cache中。 簡單說來,page cache用來快取檔案資料,buffer cache用來緩衝磁碟資料。在有檔案系統的情況下,對檔案操作,那麼資料會緩衝到page cache,如果直接採用dd等工具對磁碟進行讀寫,那麼資料會緩衝到buffer cache。

所以我們看linux,只要不用swap的交換空間,就不用擔心自己的記憶體太少.如果常常swap用很多,可能你就要考慮加實體記憶體了.這也是linux看記憶體是否夠用的標準. 如果是應用伺服器的話,一般只看第二行,+buffers/cache,即對應用程式來說free的記憶體太少了,也是該考慮最佳化程式或加記憶體了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.