Swap: 如何在 Linux 中启用交换内存

Swap 是 Linux 系统的虚拟内存,用于缓解物理内存不足的压力
<p>在 Windows 中,Swap 就是我们所知的<strong>“页面文件”</strong>或<strong>虚拟内存</strong>。虽然在 Windows 中它一直是一个文件 (pagefile.sys),但在 Linux 中,直到最近,我们必须有一个专用的<strong>分区</strong>(格式化并挂载为交换),我们想要用于此目的的容量。最现代的发行版已经使用类似于 Windows<strong>的文件来执行此任务。</strong></p>
<p><img alt="Linux 交换" src="https://www.softzone.es/app/uploads-softzone.es/2020/09/Linux-Swap.jpg" style="height:481px; width:794px" /></p>
<p> </p>
<p> </p>
<h2>Swap的优缺点</h2>
<p>像所有东西一样,此功能有其自身的优点和缺点。在主要优势中,我们可以强调它是<strong>一种“快速且廉价”的 RAM 内存问题解决方案</strong>。特别是当它们是零星的问题时。此外,需要交换才能使用某些 Linux 功能,例如使计算机休眠。此外,在这种情况下,我们将需要比我们在 PC 中拥有的总 RAM 多几个演出的交换。</p>
<p>拥有 8 GB 的 Swap 与拥有 8 GB 的 RAM 不同。<strong>Swap 比 RAM 慢得多</strong>,并且从硬盘驱动器发送和检索信息需要时间,因此我们会注意到性能的显着损失。如果我们求助于这个没有问题,但是如果我们的 RAM 很少,那么物理扩展它比依赖 Swap 更好。此外,如果您有<a href="https://itigic.com/tag/ssd/" target="_self">SSD</a>,从长远来看,使用此交换可能会损坏它,因为它需要大量的写入周期。</p>
<p>此外,<strong>Swap 对 Linux 的重要性不如 RAM</strong>。这意味着它将始终处于后台,并且很可能在某些情况下某些程序甚至整个操作系统会失败。</p>
<h2>我应该使用交换吗?</h2>
<p>这个问题的答案很复杂。<strong>这取决于</strong>我们的计算机拥有的硬件,以及我们使用它的目的。例如,如果我们有 4 GB 的 RAM,我们应该准备好一些交换 GB,以便在需要时可用。如果我们是经常<strong>使计算机休眠的</strong>人之一,也会发生同样的情况。</p>
<p> </p>
<p>如果我们使用消耗大量内存的应用程序,例如 Blender、4K 视频编辑器或在<a href="https://itigic.com/tag/gimp/" target="_self">GIMP</a>中编辑非常大的照片,那么最好有这个空间可用,尽管我们可能不需要它。</p>
<p>但是,如果我们有一台具有中等 RAM(例如 16 GB)的计算机,并且我们既不使用休眠功能也不使用以前的程序,那么<strong>Swap 就没有必要</strong>了,因为我们的 Linux 永远不会使用所有这些内存。</p>
<h3>Swappiness:选择我们希望 Linux 何时使用 Swap</h3>
<p>默认情况下,Ubuntu(和许多 Linux 发行版)将默认的<strong>swappiness</strong>设置为 60。这意味着在使用 60% 的 RAM 之前不会使用 Swap。从该阈值开始是开始使用交换内存的时间。</p>
<p>我们可以通过使用具有 root 权限的编辑器编辑以下文件来修改此值:</p>
<p> </p>
<p> </p>
<p><code>cat /proc/sys/vm/swappiness</code></p>
<p>我们可以通过修改我们想要的默认值来<strong>更改</strong>所需的<strong>阈值。</strong>例如,如果我们只想在使用了 90% 的 RAM 时开始使用它,我们可以设置一个值“90”。更。这将更好地利用计算机的物理内存,进而转化为更好的性能。</p>
<p>如果我们不想修改这个值,我们也可以通过下面的指令来临时改变swap,不过一定要记住,重启后会恢复到默认的swappiness值。</p>
<p><code>sudo sysctl vm.swappiness=10</code></p>
<p>我们必须配置的最佳值取决于每个值。如果我们有足够的 RAM,则越高越好。但是如果我们要小心避免内存耗尽,默认值也不错。</p>
<h2>如何在 Linux 中激活 Swap</h2>
<p>根据我们使用的类型(分区或文件),有两种不同的方式来激活 Swap 的使用。我们可以检查我们的 Linux 是否有 Swap,以及是什么类型,在终端中执行以下命令:</p>
<p><code>sudo swapon --show</code></p>
<p>有了它,我们将能够看到名称或安装点、类型和大小。</p>
<p><strong>在我们使用典型的分区形式的情况下,那么我们在安装Ubuntu</strong>时唯一要做的就是创建一个分区,我们想要的大小(推荐1.5倍RAM)格式化为Linux-SWAP。此外,我们还必须为其分配交换挂载点,以便操作系统准备所述分区以将其用作交换。</p>
<p><img alt="Ubuntu 参与交换" src="https://www.softzone.es/app/uploads-softzone.es/2020/09/Ubuntu-particion-Swap.jpg" style="height:529px; width:777px" /></p>
<p>如果我们在安装操作系统期间执行此操作,我们将无需执行任何其他操作。否则,如果我们想稍后添加它,我们必须在我们的发行版的 fstab 中指定这个挂载点,以便它在启动时自动启动。</p>
<p>如果您想<strong>通过文件启用 Swap 的使用</strong>,我们必须执行以下命令:</p>
<p>创建交换文件(为我们想要给它的值选择改变 1G 的大小):</p>
<p><code>sudo fallocate -l 1G /swapfile</code></p>
<p>接下来,我们授予它权限,以便只有 root 可以使用以下命令写入所述文件:</p>
<p><code>sudo chmod 600 /swapfile</code></p>
<p> </p>
<p>我们给文件一个结构来充当交换文件:</p>
<p><code>sudo mkswap /swapfile</code></p>
<p>最后,我们通过以下方式激活它:</p>
<p><code>sudo swapon /swapfile</code></p>
<p>为了让这个文件默认加载到发行版的开头,我们必须在 fstab 中添加它的指令。该语句应该像另一个挂载点,具有以下内容:</p>
<p><code>/swapfile swap swap defaults 0 0</code></p>
<p>准备好了。我们重新启动 Linux,我们可以看到新的 Swap 分区是如何工作的。如果需要,我们可以再次使用“sudo swapon –show”命令来检查我们是否确实使用了文件交换而不是分区。</p>
<p> </p>
<p> </p>
<p> </p>
<h2>Swap的优缺点</h2>
<p>像所有东西一样,此功能有其自身的优点和缺点。在主要优势中,我们可以强调它是<strong>一种“快速且廉价”的 RAM 内存问题解决方案</strong>。特别是当它们是零星的问题时。此外,需要交换才能使用某些 Linux 功能,例如使计算机休眠。此外,在这种情况下,我们将需要比我们在 PC 中拥有的总 RAM 多几个演出的交换。</p>
<p>拥有 8 GB 的 Swap 与拥有 8 GB 的 RAM 不同。<strong>Swap 比 RAM 慢得多</strong>,并且从硬盘驱动器发送和检索信息需要时间,因此我们会注意到性能的显着损失。如果我们求助于这个没有问题,但是如果我们的 RAM 很少,那么物理扩展它比依赖 Swap 更好。此外,如果您有<a href="https://itigic.com/tag/ssd/" target="_self">SSD</a>,从长远来看,使用此交换可能会损坏它,因为它需要大量的写入周期。</p>
<p>此外,<strong>Swap 对 Linux 的重要性不如 RAM</strong>。这意味着它将始终处于后台,并且很可能在某些情况下某些程序甚至整个操作系统会失败。</p>
<h2>我应该使用交换吗?</h2>
<p>这个问题的答案很复杂。<strong>这取决于</strong>我们的计算机拥有的硬件,以及我们使用它的目的。例如,如果我们有 4 GB 的 RAM,我们应该准备好一些交换 GB,以便在需要时可用。如果我们是经常<strong>使计算机休眠的</strong>人之一,也会发生同样的情况。</p>
评论 (0)
加载评论中…