当有大量内存可用时,为什么要使用交换?

当有大量内存可用时,为什么要使用交换?

我有 4GB 的 RAM 和 8GB 可用的交换分区。

有时我喜欢查看特定点的内存使用量。我注意到,有时使用的交换量很少(~200kb),尽管我从未见过实际内存超过 1GB。

当然,我意识到大多数情况下这不是问题,因为 200kb 就像大海中的一杯水。

这仅仅是一个报告错误吗?因为有一次我从 livedisk 运行 Ubuntu,它显示它正在使用大量交换空间……但是当你在 livedisk 中运行时,Ubuntu 没有可用的交换空间?(或者至少你希望它不会开始将东西写入硬盘或主机 PC?)。虽然那台机器上有一个交换分区,但 livedisk 可以使用它吗??

答案1

这是内核本身的设计特点。我们信任 Linus (Torvalds)!

您可以尝试调整一些行为特征,但在低层次上,内核只会将它们视为建议。(谷歌“swapiness”)

通常情况下,交换区可以假定位于硬盘上。如果程序想要额外的保护以防崩溃,它可能会请求将临时文件同步到磁盘(最终可能会位于交换区)。然后在崩溃后,可以检测到脏交换区并尝试恢复数据。

您可能会惊讶于少量数据被写入交换区的频率有多高(尝试将您的交换区安装在旧的 USB 驱动器上,当它开始阻塞时您会感到痛苦!)

相关内容