交换空间是位于磁盘分区顶部或特殊磁盘文件中的物理内存页,用于在物理内存填满时扩展系统的 RAM。当没有可用的 RAM 时,不活动的内存页通常会转储到交换区域,以此作为扩展 RAM 资源的方法。然而,由于标准硬盘的旋转速度,交换空间的传输速度和访问时间远低于 RAM。
在配备了高速 SSD 硬盘的新机器上,保留一个小分区用于交换将比传统 HDD 显著提高访问时间和传输速度,但速度仍然低于 RAM 内存。有些人建议将交换空间设置为计算机 RAM 的两倍。然而,在 RAM 超过 4 GB 的系统上,交换空间应设置为 2 或 4 GB。
如果您的服务器拥有足够的 RAM 内存,或者不需要使用交换空间,或者交换显著降低了您的设备性能,您可以考虑禁用交换区域。
在真正禁用交换空间之前,我们首先需要查看您的内存负载程度,然后通过发出以下命令来识别持有交换区域的分区。
free -h
查找“已使用的交换空间”大小。如果使用的大小是 0B 或接近 0 字节,我们可以假设交换空间未被密集使用,并且可以为了安全起见将其禁用。
接下来,在 blkid 命令后检查 TYPE="swap" 行以定义交换分区,如下面的屏幕截图所示。
blkid
!如何在 Linux 中永久禁用 Swap检查交换分区类型
同样,发出以下 lsblk 命令以搜索并识别 [SWAP] 分区,如下面的屏幕截图所示。
lsblk
!如何在 Linux 中永久禁用 Swap搜索确认交换分区
在识别出交换分区或文件后,运行以下命令以停用交换区域。
swapoff /dev/mapper/centos-swap
或者从 /proc/swaps 禁用所有交换。
swapoff -a
要检查交换区域是否已被禁用,请运行 free 命令。
free -h
!如何在 Linux 中永久禁用 Swap禁用交换分区
要永久禁用 Linux 交换空间,请打开 /etc/fstab 文件,找到交换行并在该行前面添加一个 #(井号)符号以注释掉整行,如下面的屏幕截图所示。
vi /etc/fstab
之后,重新启动系统以应用新的交换设置,或者在某些情况下发出 mount -a 命令可能就足够了。
mount -a
系统重启后,应发出本教程开头介绍的命令,以表明您系统中的交换区域已完全且永久地被禁用。
free -h
blkid
lsblk
简单方法或其他步骤:
如果您真的想禁用交换(注意:不建议这样做,即使您非常确定有足够的物理 RAM),请按照以下步骤操作:
- 运行 swapoff -a:这将立即禁用交换。
- 从 /etc/fstab 中删除任何交换条目。
- 重启系统。好的,如果交换消失了。如果由于某种原因它仍然存在,您必须删除交换分区。
- 重复步骤 1 和 2,之后使用 fdisk 或 parted 删除(现在未使用的)交换分区。这里要非常小心:删除错误的分区将带来毁灭性的后果!