linux中內存的使用

首先介紹一下linux中內存是如何使用的。
當有應用需要讀寫磁盤數據時,由系統把相關數據從磁盤讀取到內存,如果物理內存不夠,則把內存中的部分數據導入到磁盤,從而把磁盤的部分空間當作虛擬內存來使用,也稱爲Swap。如果給所有應用分配足夠內存後,物理內存還有剩餘,linux會盡量再利用這些空閒內存,以提高整體I/O效率,其方法是把這部分剩餘內存再劃分爲cache及buffer兩部分加以利用。
從磁盤讀取到內存的數據在被相關應用程序讀取後,如果有剩餘內存,則這部分數據會存入cache,以備第2次讀取時,避免重新讀取磁盤。當一個應用程序在內存中修改過數據後,因爲寫入磁盤速度相對較低,在有空閒內存的情況下,這些數據先存入buffer,在以後某個時間再寫入磁盤,從而應用程序可以繼續後面的操作,而不必等待這些數據寫入磁盤的操作完成。
如果在某個時刻,系統需要更多的內存,則會把cache部分擦除,並把buffer中的內容寫入磁盤,從而把這兩部分內存釋放給系統使用,這樣再次讀取cache中的內容時,就需要重新從磁盤讀取了。
通過以上分析可以得知,空閒物理內存不多,不一定表示系統運行狀態很差,因爲內存的cache及buffer部分可以隨時被重用,在某種意義上,這兩部分內存也可以看作詩額外的空閒內存。swap如果被頻繁調用,bi,bo長時間不爲0,則纔是內存資源是否緊張的依據。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章