
對我來說,快取換出的頁面聽起來非常適得其反。如果交換頁面,首先將它們緩存在記憶體中,然後只需將它們移動到正確的位置有什麼好處?即使主動交換頁面,「僅僅」交換它們不是更有意義嗎?事實上快取交換不是浪費資源嗎?
答案1
經過更多研究,我發現 SwapCached 一詞/proc/meminfo
具有誤導性。事實上,它與記憶體和交換中同時存在的位元組數有關,這樣如果這些頁面不髒,則不需要將其換出。
答案2
我從來沒有聽說過這個,而且對我來說也沒有多大意義。我仍然認為確保它根本不交換(當然預訂除外)的好舊規則是最好的。現在,從理論上講,將資料快取在直接可用記憶體中具有明顯的優勢,因為從磁碟等慢速資料中載入資料需要一段時間。但是,如果您能夠快取要交換的頁面,為什麼還要再次進行交換呢?
答案3
在交換區和 RAM 之間複製頁面的目的是避免等待磁碟,如果出現以下情況:
需要從他們身上讀取一些東西
他們需要被驅逐才能為其他東西騰出空間
如果它們僅處於交換狀態,則情況 1. 表示等待它們從磁碟進入;如果它們僅位於 RAM 中,則情況 2. 表示等待它們寫入磁碟。
(當然,情況 2 實際上有點複雜,因為驅逐此類頁面顯然更便宜,因此內核可能會優先驅逐它們,但要點應該很清楚。)