Mengapa masuk akal untuk melakukan cache swap?

9

Kedengarannya sangat kontra-produktif bagi saya untuk cache halaman yang ditukar. Jika Anda menukar halaman, apa untungnya menyimpannya lebih dulu di memori, hanya dengan memindahkannya ke tempat yang tepat? Bahkan jika halaman ditukar secara proaktif, bukankah lebih masuk akal untuk "hanya" menukarnya? Bukankah caching swap sebenarnya hanya pemborosan sumber daya?

txwikinger
sumber
Anda, Bu / tuan, dapatkan poin goody ekstra dari saya untuk pertanyaan Anda. Seandainya saya bisa memilih dua kali.
Eli Frey

Jawaban:

12

Setelah beberapa penelitian lebih lanjut, saya telah menemukan bahwa istilah SwapCached dalam /proc/meminfoadalah menyesatkan. Bahkan, ini berkaitan dengan jumlah byte yang secara simultan dalam memori dan swap, sehingga jika halaman ini tidak kotor, mereka tidak perlu ditukar.

txwikinger
sumber
2
Tapi itu hampir setara dengan di-cache, bukan? Maksud saya, WRT sistem manajemen memori kernel, "cache" berarti "baik pada disk maupun dalam RAM", kan?
SamB
0

Bahkan tidak pernah mendengar yang ini dan juga tidak masuk akal bagi saya. Saya masih berpikir aturan lama yang baik untuk memastikan itu tidak bertukar sama sekali (kecuali tentu saja reservasi) adalah yang terbaik. Sekarang, secara teoritis, caching barang-barang dalam memori yang tersedia langsung yang membutuhkan waktu untuk memuat dari sesuatu yang lambat seperti disk, memiliki keuntungan nyata. Tetapi jika Anda dapat men-cache halaman yang akan ditukar, mengapa sekali lagi bertukar di tempat pertama?

reiche
sumber
0

Tujuan menduplikat halaman antara swap dan RAM adalah untuk menghindari menunggu disk jika:

  1. Sesuatu perlu dibaca dari mereka

  2. Mereka perlu diusir untuk memberi ruang bagi sesuatu yang lain

Jika mereka hanya dalam swap, kasus 1. berarti menunggu mereka datang dari disk; jika mereka hanya dalam RAM, case 2. akan berarti menunggu mereka pergi ke disk.

(Tentu saja, kasus 2 sebenarnya sedikit lebih rumit, karena jelas lebih murah untuk mengusir halaman seperti itu, sehingga kernel mungkin mengusir mereka secara istimewa, tetapi intinya harus jelas.)

SamB
sumber