我已經看到很多人發佈的這是什麼一樣的主觀解釋。希望這是一個更完整的答案。
在2.6.28後的拆分LRU上Linux swappiness是一個乘法器,用於任意修改計算的分數,以確定兩個LRU中建立的壓力。
因此,例如在一個沒有剩餘空閒內存的系統上 - 您現有內存的價值是根據多少內存被列爲「活動」的速率以及頁面的頻率在進入不活動列表後升級爲活動狀態。
一個有很多促銷/活動和非活動頁面降級的LRU有很多用處。
通常文件支持的存儲更便宜和更安全,以便在內存用完時自動獲得200的修飾符(這使得文件支持的內存比交換支持的內存(其值爲0)多200倍,當它乘以這個分數
什麼swappiness做的是修改這個值,通過減去你給的swappiness數(默認爲60)到文件內存並且增加swappiness的值作爲一個倍數給anon memory,因此默認的swappiness離開匿名內存比文件內存高80倍(文件爲200-60,匿名內存爲0 + 60),因此,在一個典型的使用了所有內存的Linux系統上,頁面緩存將不得不超過80倍對匿名我來說比匿名記憶更有效mory將被換出以支持頁面緩存。
如果將swappiness設置爲100,則會給anon修飾符100和文件內存修飾符100(200 - 100),使兩個LRU的權重相等。因此,在一個文件繁重的系統上,想要提供頁面緩存的anon內存不如頁面緩存那麼活躍,那麼anon內存將被交換到磁盤以騰出額外頁面緩存的空間。
非常豐富。謝謝。 – Zenil
爲了記錄,交換的金額與您使用交換的頻率沒有關係。 –