ludi的個(gè)人空間 http://selenalain.com/space-uid-138953.html [收藏] [復制] [RSS]

博客

2018-12-19

已有 1263 次閱讀2018-12-19 11:47 |個(gè)人分類(lèi):linux系統| linux

free命令介紹

下面為使用free命令查看我們實(shí)驗室文件服務(wù)器內存得到的結果,-m選項表示使用MB為單位:

 、               

輸出的第二行表示系統內存的使用情況:

Mem: total(總量)= 3920MB,

used(已使用)= 1938MB,

free(空閑)= 1982MB,

shared(共享內存)= 0MB,

buffers = 497MB,

cached = 1235MB

注:前面四項都比較好理解,buffer 和 cache找不到合適的詞來(lái)翻譯,它們的區別在于:

· 

A buffer is something that has yet to be “written” to disk.

· 

· 

A cache is something that has been “read” from the disk and stored for later use.

· 

buffer用于存放要輸出到磁盤(pán)的數據,而cache是從磁盤(pán)讀出存放到內存中待今后使用的數據。它們的引入均是為了提供IO的性能。

輸出的第三行表示在第二行的基礎上-/+ buffers/cache得到的:

1. 

– buffers/cache used = Mem used – buffers – cached = 1938MB – 497MB – 1235MB = 205MB 

2. 

3. 

+ buffers/cache free = Mem free + buffers + cached = 1982MB + 497MB + 1235MB = 3714MB 

4. 

輸出的第三行表示交換分區使用的情況:

Swap:total(總量)= 4095MB

used(使用)= 0MB

free(空閑)= 4095MB

由于系統當前內存還比較充足,并未使用到交換分區。

上面輸出的結果比較難理解的可能是第三行,為什么要向用戶(hù)展示這行數據呢??jì)却媸褂昧繙p去系統buffer/cached的內存表示何意呢?系統空閑內存加上buffer/cached的內存又表示何意?

內存的分類(lèi)

我們把內存分為三類(lèi),從用戶(hù)和操作系統的角度對其使用情況有不同的稱(chēng)呼:

 

上表中something代表的正是free命令中”buffers/cached”的內存,由于這塊內存從操作系統的角度確實(shí)被使用,但如果用戶(hù)要使用,這塊內存是可以很快被回收被用戶(hù)程序使用,因此從用戶(hù)角度這塊內存應劃為空閑狀態(tài)。

再次回到free命令輸出的結果,第三行輸出的結果應該就能理解了,這行的數字表示從用戶(hù)角度看系統內存的使用情況,更多請加意義氣五五吧久零就要。因此,如果你用top或者free命令查看系統的內存還剩多少,其實(shí)你應該將空閑內存加上buffer/cached的內存,那才是實(shí)際系統空閑的內存。

buffers/cached好處

Linux

內存管理做了很多精心的設計,除了對dentry進(jìn)行緩存(用于VFS,加速文件路徑名到inode的轉換),還采取了兩種主要Cache方式:Buffer Cache和Page Cache,目的就是為了提升磁盤(pán)IO的性能。從低速的塊設備上讀取數據會(huì )暫時(shí)保存在內存中,即使數據在當時(shí)已經(jīng)不再需要了,但在應用程序下一次訪(fǎng)問(wèn)該數據時(shí),它可以從內存中直接讀取,從而繞開(kāi)低速的塊設備,從而提高系統的整體性能。

Linux會(huì )充分利用這些空閑的內存,設計思想是內存空閑還不如拿來(lái)多緩存一些數據,等下次程序再次訪(fǎng)問(wèn)這些數據速度就快了,而如果程序要使用內存而系統中內存又不足時(shí),這時(shí)不是使用交換分區,而是快速回收部分緩存,將它們留給用戶(hù)程序使用。

因此,可以看出,buffers/cached真是百益而無(wú)一害,真正的壞處可能讓用戶(hù)產(chǎn)生一種錯覺(jué)——Linux耗內存!其實(shí)不然,Linux并沒(méi)有吃掉你的內存,只要還未使用到交換分區,你的內存所剩無(wú)幾時(shí),你應該感到慶幸,因為L(cháng)inux緩存了大量的數據,也許下一次你就從中受益!

實(shí)驗證明

下面通過(guò)實(shí)驗來(lái)驗證上面的結論:

我們先后讀入一個(gè)大文件,比較兩次讀入的實(shí)踐:

1.首先生成一個(gè)1G的大文件

 

2. 清空緩存

 

3. 讀入這個(gè)文件,測試消耗的時(shí)間

 

4. 再次讀入該文件,測試消耗的時(shí)間

 

從上面看出,第一次讀這個(gè)1G的文件大約耗時(shí)18s,而第二次再次讀的時(shí)候,只耗時(shí)0.3s,足足提升60倍!

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
返回頂部
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页