linux(centos8): 临时关闭/永久关闭交换分区swap?

qiaosym 2020-05-28

一,为什么要关闭swap?

1,swap的用途?

swap 分区就是交换分区,(windows平台叫虚拟内存)

在物理内存不够用时,

操作系统会从物理内存中把部分暂时不被使用的数据转移到交换分区,

从而为当前运行的程序留出足够的物理内存空间

2,为什么要关闭swap?

swap启用后,在使用磁盘空间和内存交换数据时,

性能表现会较差,会减慢程序执行的速度

有的软件的设计师不想使用交换,

例如:kubelet 在 1.8 版本以后强制要求 swap 必须关闭

否则会报错:

Running with swap on is not supported, please disable swap! or set --fail-swap-on flag to false

或者kubeadm init时会报错:

[ERROR Swap]: running with swap on is not supported. Please disable swap

说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest

         对应的源码可以访问这里获取: https://github.com/liuhongdi/

说明:作者:刘宏缔 邮箱:

二,查看swapon/swapoff所属的rpm包

[ ~]# whereis swapoff
swapoff: /usr/sbin/swapoff /usr/share/man/man8/swapoff.8.gz /usr/share/man/man2/swapoff.2.gz
[ ~]# whereis swapon
swapon: /usr/sbin/swapon /usr/share/man/man8/swapon.8.gz /usr/share/man/man2/swapon.2.gz
[ ~]# rpm -qf /usr/sbin/swapon
util-linux-2.32.1-17.el8.x86_64 
[ ~]# rpm -qf /usr/sbin/swapoff
util-linux-2.32.1-17.el8.x86_64

如果误删除了命令可以用dnf安装

[ ~]# dnf install util-linux

三,查看swap当前的状态:

查看swap的空间,共4G

[ ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           3757        1224        1080          20        1452        2270
Swap:          4047           0        4047

用swapon查看所属设备和大小:

#-v: --verbose                 详尽模式

[ ~]# swapon -v
NAME      TYPE      SIZE USED PRIO
/dev/dm-1 partition   4G   0B   -2

四,临时关闭swap

1,查看swapoff的版本

[ ~]# swapoff --version
swapoff,来自 util-linux 2.32.1

2,关闭swap

#-a:all,禁用 /proc/swaps 中的所有交换区

[ ~]# swapoff -a

3,检查效果 :

[ ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           3757        1221        1083          20        1451        2273
Swap:             0           0           0

swap的大小为0,已关闭

4,用swapon检查:

[ ~]# swapon -v

输出为空,表示swap已关闭

五,临时关闭swap后启用swap

1,查看swapon的版本

[ ~]# swapon --version
swapon,来自 util-linux 2.32.1

2,启用 swap

#-a:--all                启用 /etc/fstab 中的所有交换区

[ ~]# swapon -a
查看效果:
[ ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           3757        1225        1079          20        1452        2269
Swap:          4047           0        4047

可以看到swap的空间显示为4G

 用swapon -v查看

[ ~]# swapon -v
NAME      TYPE      SIZE USED PRIO
/dev/dm-1 partition   4G   0B   -2

六,永久关闭swap

查看/etc/fstab 

[ ~]# more /etc/fstab

找到swap分区的记录:

...
/dev/mapper/cl-root     /                       xfs     defaults        0 0
UUID=f384615e-7c71-43b0-876c-45e8f08cfa6e /boot                   ext4    defaults        1 2
/dev/mapper/cl-home     /home                   xfs     defaults        0 0
/dev/mapper/cl-swap     swap                    swap    defaults        0 0

把加载swap分区的那行记录注释掉即可

#/dev/mapper/cl-swap     swap                    swap    defaults        0 0

重启机器

[ ~]# systemctl reboot

 再用free -m检查一下

[ ~]$ free -m
              total        used        free      shared  buff/cache   available
Mem:           3757        1127        1906          17         722        2370
Swap:             0           0           0

七,查看linux的版本:

[ ~]$ cat /etc/redhat-release 
CentOS Linux release 8.1.1911 (Core)

相关推荐