Linux 为交换创建缓存。用来做什么?

Linux 为交换创建缓存。用来做什么?

这看起来像个笑话: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,他没有向我解释分页和交换之间的区别。我没有找到关于此问题的清晰文档。

相关内容