如果信息被换出到光盘然后再读回内存,它通常会在交换区域中分配,直到交换空间不足为止.
这意味着如果相同的信息需要稍后再次换出并且没有改变,操作系统可以从已分配的RAM中删除页面,而无需向磁盘节省时间.
分配给已经读回内存的东西的交换也将被释放
>当根本不再需要相关页面时(即由应用程序释放)
>更改相关页面时(因此光盘上的副本不再是最新的)
>机器在交换空间上运行不足,因此清除RAM中已有的东西以腾出空间
在/ proc / meminfo中查找名为“SwapCached”的行.此条目计算在RAM和交换分区中找到的页面.例如,随机选择一个小VM,我的一个VM的/ proc / meminfo虚拟文件显示:
SwapTotal: 698816 kB
SwapFree: 624520 kB
SwapCached: 17232 kB
表示分配了74268K的交换空间,但是这些页面的17232K当前也被映射到RAM中(如果其他东西需要空间,可以立即从交换中解除分配).
毫无疑问,坐在那里的页面很久以前就被换掉了,从那时起就再也没有用过了.内核不会因为有一些空闲的RAM来重新加载来自swap的页面,因为空闲的RAM可能更好地用于缓存或缓冲区 – 写入交换的页面通常只在下次需要时重新读取.
如果你想清除swap中的内容,只要你有足够的空闲和/或可用空间(即免费缓存缓冲区(减去cb计数中那些不可用的权利RightThisInstant)),只需将其关闭然后再打开再次使用swapoff -a&&交换-a.
当然,你也可能在某处发生内存泄漏,但这并不是你所看到的行为的唯一解释.