为什么要使用交换分区?

为什么要使用交换分区?

我总是加密我的 Ubuntu 安装。目前,我在闪存驱动器上安装了 /boot 和两个加密分区:/ 和 swap。为了登录,我必须输入 / 和 swap 分区的密码。为什么 Ubuntu 需要交换分区而不是像 Windows 那样的分页文件?几年前,当我第一次开始使用 Linux 时,我依稀记得在 Virtual Box 中安装了 Open Suse,除非我在做梦,否则我似乎记得 Open Suse 在 / 上创建了一个分页文件。是否可以在 Ubuntu 下在 / 上创建分页文件,以避免额外的分区?

答案1

我无法评论在 Open Suse 中创建的页面文件,因为我之前没有这方面的经验。但是 Swap 是 Linux 的页面分区。

以下内容摘录自交换常见问题(经过Ubuntu 文档 wiki 的贡献者):

什么是 swap?

交换空间是硬盘上的区域,是机器虚拟内存的一部分,是可访问物理内存 (RAM) 和交换空间的组合。交换空间暂时保存不活动的内存页面。当系统决定需要物理内存来运行活动进程并且可用的未使用物理内存不足时,将使用交换空间。如果系统恰好需要更多内存资源或空间,则物理内存中的不活动页面将移动到交换空间,从而释放物理内存用于其他用途。请注意,交换的访问时间较慢,因此不要将其视为物理内存的完全替代品。交换空间可以是专用的交换分区(推荐)、交换文件或交换分区和交换文件的组合。

为什么我需要交换?

占用内存的程序有时,大型程序(如 LibreOffice、Neverwinter Nights 或视频编辑器)会使整个系统需要额外的内存。这些大型程序在启动时使用的大量页面可能仅用于初始化,之后再也不会使用。系统可以交换出这些页面并释放内存用于其他程序甚至磁盘缓存。在这些情况下,交换将用于帮助系统处理任何额外负载。

休眠(暂停至磁盘)休眠功能(挂起到磁盘)会在关闭机器之前将 RAM 的内容写入交换分区。因此,您的交换分区应至少与 RAM 大小一样大。Ubuntu 中当前使用的休眠实现 swsusp 需要交换或挂起分区。它不能使用活动文件系统上的交换文件。

不可预见的情况不可预见的事件可能会发生(程序出错、某些操作需要比您想象的更多的空间,或任何其他不可预测的事件组合)。在这些情况下,交换可以为您提供额外的延迟,以弄清楚发生了什么,或完成您正在处理的工作。

优化内存使用由于机械硬盘比 RAM 慢得多(SSD - 固态硬盘 - 存储速度不如物理驱动器慢,但仍比 RAM 慢),当您需要一个文件(无论是视频等数据文件、Firefox 等可执行文件还是库)时,Linux 内核会将文件读入 RAM 并将其保存在那里,以便您下次需要它时,它已经在 RAM 中,数据访问速度要快得多。加速磁盘读取的 RAM 部分称为“缓存内存”。您会注意到它们在响应能力方面有很大的不同。Linux 内核会自动将程序保留但未真正使用的 RAM 移到交换区,以便更好地实现扩展缓存内存的目的。

优化 Swap 性能由于交换空间使用磁盘设备,因此这可能会导致任何大量使用交换空间的系统出现性能问题,因为系统本身可能也在交换操作所需的同时使用同一个磁盘设备。减少此问题的一种方法是将交换空间放在不同的物理驱动器上,以便减少或消除对该资源的竞争。

如需更深入地了解和理解所有组件,请随时查看社区 Wiki:掉期常见问题

相关内容