linux中記憶體使用,swap,cache,buffer的含義
首先介紹一下linux中記憶體是如何使用的。[@more@]當有應用需要讀寫磁碟資料時,由系統把相關資料從磁碟讀取到記憶體,如果實體記憶體不夠,則把記憶體中的部分資料匯入到磁碟,從而把磁碟的部分空間當作虛擬記憶體來使用,也稱為Swap。如果給所有應用分配足夠記憶體後,實體記憶體還有剩餘,linux會盡量再利用這些空閒記憶體,以提高整體I/O效率,其方法是把這部分剩餘記憶體再劃分為cache及buffer兩部分加以利用。
從磁碟讀取到記憶體的資料在被相關應用程式讀取後,如果有剩餘記憶體,則這部分資料會存入cache,以備第2次讀取時,避免重新讀取磁碟。當一個應用程式在記憶體中修改過資料後,因為寫入磁碟速度相對較低,在有空閒記憶體的情況下,這些資料先存入buffer,在以後某個時間再寫入磁碟,從而應用程式可以繼續後面的操作,而不必等待這些資料寫入磁碟的操作完成。
如果在某個時刻,系統需要更多的記憶體,則會把cache部分擦除,並把buffer中的內容寫入磁碟,從而把這兩部分記憶體釋放給系統使用,這樣再次讀取cache中的內容時,就需要重新從磁碟讀取了。
透過以上分析可以得知,空閒實體記憶體不多,不一定表示系統執行狀態很差,因為記憶體的cache及buffer部分可以隨時被重用,在某種意義上,這兩部分記憶體也可以看作詩額外的空閒記憶體。swap如果被頻繁呼叫,bi,bo長時間不為0,則才是記憶體資源是否緊張的依據。
從磁碟讀取到記憶體的資料在被相關應用程式讀取後,如果有剩餘記憶體,則這部分資料會存入cache,以備第2次讀取時,避免重新讀取磁碟。當一個應用程式在記憶體中修改過資料後,因為寫入磁碟速度相對較低,在有空閒記憶體的情況下,這些資料先存入buffer,在以後某個時間再寫入磁碟,從而應用程式可以繼續後面的操作,而不必等待這些資料寫入磁碟的操作完成。
如果在某個時刻,系統需要更多的記憶體,則會把cache部分擦除,並把buffer中的內容寫入磁碟,從而把這兩部分記憶體釋放給系統使用,這樣再次讀取cache中的內容時,就需要重新從磁碟讀取了。
透過以上分析可以得知,空閒實體記憶體不多,不一定表示系統執行狀態很差,因為記憶體的cache及buffer部分可以隨時被重用,在某種意義上,這兩部分記憶體也可以看作詩額外的空閒記憶體。swap如果被頻繁呼叫,bi,bo長時間不為0,則才是記憶體資源是否緊張的依據。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8109090/viewspace-1028436/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux記憶體、Swap、Cache、BufferLinux記憶體
- 手動釋放Linux上的Swap、Buffer和CacheLinux
- 清理buffer/cache/swap的方法梳理
- Linux如何手動釋放Swap、Buffer和CacheLinux
- 調整緩衝區快取記憶體(Buffer Cache)的效能(轉)快取記憶體
- Linux Buffer/Cache 的區別Linux
- 效能測試必備知識(11)- 怎麼理解記憶體中的Buffer和Cache?記憶體
- 快取頭Cache-Control的含義和使用快取
- oracle buffer busy waits等待的含義OracleAI
- 教你如何進行 linux swap 交換記憶體擴容Linux記憶體
- PostgreSQL DBA(89) - Linux(Buffer vs Cache)SQLLinux
- 【BUFFER】Oracle buffer cache之 latch 學習記錄Oracle
- MySQL入門--記憶體buffer poolMySql記憶體
- cache操作:clean、invalidate與flush的含義
- Linux shell中2>&1的含義Linux
- 在Linux中,如何檢視linux中記憶體使用率最高的程序?Linux記憶體
- 檢查 Linux 中記憶體使用情況的 8 條命令Linux記憶體
- 如何檢視linux系統中空閒記憶體/實體記憶體使用/剩餘記憶體Linux記憶體
- IO之核心buffer----"buffer cache"
- linux記憶體管理(一)實體記憶體的組織和記憶體分配Linux記憶體
- 33、buffer_cache_3(redo的產生、LRBA、buffer cache裡的等待事件)事件
- Linux工具效能調優系列二:buffer和cacheLinux
- buffer與cache的區別
- Oracle Cache Buffer ChainsOracleAI
- Linux中的特殊符號含義及作用!Linux符號
- vue使用中的記憶體洩漏Vue記憶體
- 如何檢視Linux的記憶體使用狀況Linux記憶體
- [轉帖]深入JVM - Code Cache記憶體池JVM記憶體
- 【Cache】將常用的“小表”快取到Buffer Cache快取
- Java記憶體模型FAQ(六)沒有正確同步的含義是什麼?Java記憶體模型
- Linux記憶體不夠了?看看如何開啟虛擬記憶體增加記憶體使用量Linux記憶體
- JS中的棧記憶體、堆記憶體JS記憶體
- Linux共享記憶體的管理Linux記憶體
- [Linux]共享記憶體Linux記憶體
- linux常用指令含義及使用方法Linux
- 用以檢查Linux記憶體使用的5個命令Linux記憶體
- Linux使用者空間記憶體管理Linux記憶體
- 如何在 Linux 中找出記憶體消耗最大的程序Linux記憶體
- Linux實體記憶體管理Linux記憶體