キャッシュスワップはなぜ意味がありますか?

キャッシュスワップはなぜ意味がありますか?

置き換えられたページをキャッシュすることは私にとって非常に非生産的なようです。ページを交換する場合は、まずメモリにキャッシュしてから正しい場所に移動すると、どのような利点がありますか?ページが積極的に交換されても、「ただ」交換する方が合理的ではないでしょうか?実際、キャッシュスワッピングはリソースの無駄ではありませんか?

答え1

さらに調査を行った結果、SwapCachedという用語が誤解を招くことが/proc/meminfoわかりました。実際、これはメモリとスワップに同時に存在するバイト数に関連しているため、ページがダーティでない場合はスワップアウトする必要はありません。

答え2

私はこれについて聞いたことがないし、それは私にとってあまり意味がありません。私はまだそれがまったく交換されないようにする古い規則が最高だと思います(もちろん予約は除く)。理論的には、ディスクなどの低速ソースからデータをロードするのに時間がかかるため、直接使用可能なメモリにデータをキャッシュすることには明らかな利点があります。しかし、置き換えられるページをキャッシュできる場合は、なぜ再キャッシュする必要がありますか?

答え3

スワップとRAMの間でページをコピーする目的は、次の場合にディスクを待たないようにすることです。

  1. 彼らから何かを読むべきです

  2. 他の仕事のためのスペースを確保するために退去する必要があります。

スワップのみの場合、ケース1はディスクから入るのを待ち、RAMにのみ存在する場合、ケース2はディスクに書き込まれるのを待つことを意味します。

(もちろん、ケース2は実際にはもう少し複雑です。ページを削除するのは確かに安いので、カーネルは最初にそのページを削除することができますが、要点は明らかです。

関連情報