📜  如何在 Linux 中永久禁用交换?

📅  最后修改于: 2021-10-28 02:27:35             🧑  作者: Mango

交换或交换空间是放置在磁盘分区或特殊磁盘文件顶部的物理内存页,用于在物理内存填满时扩展系统的 RAM。当没有可用的 RAM 时,不活动的内存页经常被转储到交换区,使用这种扩展 RAM 资源的方法。但是,由于标准硬盘的旋转速度,交换空间的传输速度和访问时间比 RAM 低得多。

与具有快速 SSD 硬盘的较新机器上的传统 HDD 相比,为交换保留一个小分区将显着增加访问时间和传输速度,但速度仍然低于 RAM 内存。有人说将交换空间设置为计算机 RAM 量的两倍是合适的。但是,在 RAM 超过 4 GB 的系统上,交换空间应设置为 2 或 4 GB。

如果您的服务器有足够的 RAM 内存或不需要使用交换空间或您的设备输出因交换而显着减少,您可以考虑禁用交换字段。

您首先需要在实际禁用交换空间之前可视化您的内存负载程度,然后通过发出以下命令来识别保存交换区域的分区。

free -h 

查找已用交换空间大小。如果使用的大小为 0B 或接近 0 字节,则可以假设交换空间没有被大量使用,可以禁用以进行保护。

如何在 Linux 中永久禁用交换

接下来,检查 blkid 命令后面的 TYPE=”swap” 行以定义交换分区,如下面的屏幕截图所示。

blkid
如何在 Linux 中永久禁用交换

检查交换分区类型

再次发出以下 lsblk 命令来搜索和识别 [SWAP] 分区,如下面的屏幕截图所示。

lsblk
如何在 Linux 中永久禁用交换

搜索确认交换分区

确定交换分区或文件后,运行以下命令以停用交换区域。

swapoff /dev/mapper/centos-swap 

或者从 /proc/swaps 禁用所有交换。

swapoff -a 

要检查交换区是否已禁用,请运行 free 命令。

free -h
如何在 Linux 中永久禁用交换

禁用交换分区

要永久禁用 Linux 交换空间,请打开 /etc/fstab 文件,搜索交换行并在该行前添加 #(hashtag)符号以对整行进行注释,如下面的屏幕截图所示。

vi /etc/fstab

之后,重新启动系统以应用新的交换设置或在某些情况下发出 mount -a 命令可能会奏效。

mount -a

系统重新启动后,应发出本教程开头介绍的命令,以指示系统中的交换区已完全永久禁用。

free -h
blkid  
lsblk 

以简单的方式或其他步骤:

如果您真的想禁用交换(注意:不建议这样做,即使您很确定有足够的物理 RAM),请执行以下步骤:

  • 运行 swapoff -a:这将立即禁用交换。
  • 从 /etc/fstab 中删除任何交换条目。
  • 重新启动系统。好的,如果交换消失了。如果由于某种原因它仍然存在,则必须删除交换分区。
  • 重复步骤 1 和 2,然后使用 fdisk 或 parted 删除(现在未使用的)交换分区。在这里要非常小心:删除错误的分区会产生毁灭性的后果!