为什么缓存交换有意义?


9

对我来说,缓存换出的页面听起来适得其反。如果交换页面,首先将它们缓存在内存中,而不必将它们移到正确的位置有什么好处?即使主动调换页面,“仅仅”调换页面是否更有意义?实际上,缓存交换只是浪费资源吗?


女士,先生/小姐,我的问题给我额外的好处。希望我能投票两次。
伊莱·弗雷

Answers:


12

经过更多研究后,我发现术语SwapCached in /proc/meminfo具有误导性。实际上,它与内存和交换中同时发生的字节数有关,因此,如果这些页面不脏,则不需要将其换出。


2
那几乎等同于被缓存,不是吗?我的意思是,WRT是内核的内存管理系统,“缓存”的意思是“在磁盘上和在RAM中”,对吗?
SamB'9

0

从来没有听说过这个,对我来说也没有任何意义。我仍然认为,确保它根本不会互换(当然保留除外)的良好旧规则是最好的。现在,从理论上讲,将内容缓存在直接可用的内存中(从磁盘等慢的内容中加载需要一定时间)具有明显的优势。但是,如果您能够缓存要交换的页面,为什么又要首先交换?


0

在swap和RAM之间复制页面的目的是为了避免等待磁盘,如果发生以下情况之一:

  1. 需要从他们那里读些东西

  2. 他们需要被驱逐以腾出空间给其他东西

如果它们仅处于交换状态,则情况1将意味着等待它们从磁盘进入。如果它们仅在RAM中,则情况2将意味着等待它们进入磁盘。

(当然,情况2实际上要复杂一些,因为驱逐此类页面显然要便宜一些,因此内核可能优先驱逐它们,但要点很明确。)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.