交换内存何时有用?为什么我们需要将其设置为 RAM 的两倍?

交换内存何时有用?为什么我们需要将其设置为 RAM 的两倍?

我知道只要 RAM 使用率高,内存就会被交换。而且我读到我们需要将交换设置为 RAM 数量的两倍。但为什么呢?它将如何从 RAM 转移到交换?如果我们没有交换会发生什么?

答案1

交换空间通常用作 RAM 的替代品,作为内存中页面的另一种存储,但不一定仅在 RAM 耗尽时才使用,因为 RAM 除了作为程序内存外还有其他用途:现代内存管理器通常将后台空闲的程序分配的内存移动到交换空间,并使用新释放的 RAM 空间来缓存磁盘访问。

交换空间的另一个用途是在执行挂起到磁盘或休眠状态时保存 RAM 的快照(以便系统可以关闭 RAM 电源而不会丢失数据)。

交换空间是 RAM 的两倍是有道理的,因为,如果你买了那么多 RAM,那是因为你知道你会需要它,所以你最好也准备好一个成比例的交换空间,因为你很可能也会需要它。在现代系统中,有足够的交换空间来避开后台空闲服务就足够了,否则这些服务会破坏你用于其他更重要的东西的 RAM(未使用的 RAM 总是可以用来缓存磁盘,这会大大加快你的系统速度)。有些系统在内存页面仍在 RAM 中时会预防性地将其保存到交换空间中,这样,如果需要移除它们以释放一点内存,它们就可以更快地完成(可以丢弃它们而不需要将它们写入磁盘,因为它们已经在那里了)。出于这个原因(并允许休眠),至少拥有与 RAM 数量相同的交换空间可能是一个好主意,除非你拥有异常巨大的 RAM 和/或小磁盘(如 SSD 驱动器)的情况

虽然空闲进程的内存可以被换出,但对于活动进程来说却并非如此:当一个进程需要已经换出的页面时,它会触发所谓的页面错误:进程暂停,内存管理器将页面放回 RAM,然后进程恢复并可以读取/写入所需的内存。这意味着,如果您的工作集(即当前非空闲应用程序频繁访问的数据)大于可用 RAM,您将需要换入和换出页面几乎每次读取或写入内存时导致系统运行缓慢,无法使用(这称为鞭笞)。因此,交换空间实际上不能替代您实际使用的 RAM,只能替代您的进程分配的 RAM,但它们并不真地使用。

答案2

一般来说,当计算机上可用内存不足时,就会换出内存。

基本上,操作系统会将 RAM 中的部分内容存储到存储驱动器上,以便为其他应用程序的内存需求腾出空间。操作系统如何选择从 RAM 中取出哪些内容取决于上次访问的时间。操作系统可用于交换的可用空间称为虚拟内存。

经验法则是让交换空间的大小为计算机中安装的 RAM 的两倍。但是,这可能不是最好的选择。如果您安装了 2GB 的 RAM,则交换空间大小将是 4GB 的虚拟内存,这样您就可以使用总共 6GB 的内存。虽然 6GB 可能适合大多数人,但这可能对您来说不够。

交换内存的缺点是它会占用存储驱动器上的空间。由于它位于存储驱动器上,因此访问其中的信息会比访问 RAM 上的信息慢得多。

您可以不为计算机在存储驱动器上预留任何空间来交换数据。不管有没有这个,如果您的计算机必须记住超过总内存(物理内存 + 虚拟内存)的数据,它可能会变得不稳定。计算机拥有足够多的内存来工作非常重要。

操作系统本身可能也会对该空间有其他用途。例如,Windows。如果 Windows 本身崩溃,它会将崩溃转储文件保存到为交换保留的空间中。因此,我不建议完全清除交换空间,但您应该先检查一下您的操作系统如何使用该空间。

相关内容