linux系統中交換區間(swap file)的解釋
阿新 • • 發佈:2019-01-07
Swap的調整對Linux伺服器,特別是Web伺服器的效能至關重要。通過調整Swap,有時可以越過系統性能瓶頸,節省系統升級費用。Swap空間的作用可簡單描述為:當系統的實體記憶體不夠用的時候,就需要將實體記憶體中的一部分空間釋放出來,以供當前執行的程式使用。這裡的swap空間其實就是作業系統裡面所說的虛擬儲存空間,用於放置臨時被交換出來的頁面。那些被釋放的空間可能來自一些很長時間沒有什麼操作的程式,這些被釋放的空間被臨時儲存到Swap空間中,等到那些程式要執行時,再從Swap中恢復儲存的資料到記憶體中。這樣,系統總是在實體記憶體不夠時,才進行Swap交換。
有的程式會開啟一些檔案,對檔案進行讀寫,當需要將這些程式的記憶體空間交換出去時,就沒有必要將檔案部分的資料放到Swap空間中了,而可以直接將其放到檔案裡去。如果是讀檔案操作,那麼記憶體資料被直接釋放,不需要交換出來,因為下次需要時,可直接從檔案系統恢復;如果是寫檔案,只需要將變化的資料儲存到檔案中,以便恢復。但是那些用malloc和new函式生成的物件的資料則不同,它們需要Swap空間,因為它們在
檔案系統中沒有相應的“儲備”檔案,因此被稱作“匿名”(Anonymous)記憶體資料。這類資料還包括堆疊中的一些狀態和變數資料等。所以說,Swap空間是“匿名”資料的交換空間。
一旦一個虛擬頁面被初始化了,他就在一個由核心維護的專門的交換檔案之間換來換去。在任何時候,交換檔案都限制著當前執行著的程序能夠分配的虛擬頁面的總數。