![Linux 为交换创建缓存。用来做什么?](https://linux22.com/image/630358/Linux%20%E4%B8%BA%E4%BA%A4%E6%8D%A2%E5%88%9B%E5%BB%BA%E7%BC%93%E5%AD%98%E3%80%82%E7%94%A8%E6%9D%A5%E5%81%9A%E4%BB%80%E4%B9%88%EF%BC%9F.png)
这看起来像个笑话:64 位系统中的“ramdysk”上的交换文件?
我查看了文件:/proc/meminfo 并做了一些调查。查找行:SwapCached: nnnnn kB。其中有一点我不明白。Linux 内核缓存交换的原因是什么?缓存这个的原因是什么?让页面保持活动状态不是更好的主意吗?
另外,交换和分页有什么区别?我从来没有找到关于它的确切解释。我在哪里可以查看计数器?
谢谢您的解释。
答案1
红帽解释如下:
“SwapCache:曾经被换出的内存,现在又被换回,但仍在交换文件中(如果需要内存,则不需要再次换出,因为它已经在交换文件中。这节省了 I/O)”
答案2
我不认为 SwapCached 的意思和你想象的一样。从文档
SwapCache:曾经被换出的内存,现在又被换回,但仍在交换文件中(如果需要内存,则不需要再次换出,因为它已经在交换文件中。这样可以节省 I/O)
还请注意,即使 SwapCached 位于交换文件中,它也不算作交换。
缓存:页面缓存(磁盘缓存)中的内存减去 SwapCache
答案3
我看到的文章比redhat的更好: http://www.westnet.com/~gsmith/content/linux-pdflush.htm 感谢 neutrinus 和 lain 对交换缓存的解释。这很有道理。另一个道理是,最后换出的页面恢复到活动状态的可能性最高(节省 I/O)。
我不感谢 minus signer,他没有向我解释分页和交换之间的区别。我没有找到关于此问题的清晰文档。