linux(centos8): 临时关闭/永久关闭交换分区swap?
一,为什么要关闭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://blog.imgtouch.com
本文: https://blog.imgtouch.com/index.php/2023/05/22/centos8linux-lin-shi-guan-bi-yong-jiu-guan-bi-jiao-huan-fen-qu-swap/
对应的源码可以访问这里获取: https://github.com/liuhongdi/
说明:作者:刘宏缔 邮箱: 371125307@qq.com
二,查看swapon/swapoff所属的rpm包
[root@centos8 ~]# whereis swapoff swapoff: /usr/sbin/swapoff /usr/share/man/man8/swapoff.8.gz /usr/share/man/man2/swapoff.2.gz [root@centos8 ~]# whereis swapon swapon: /usr/sbin/swapon /usr/share/man/man8/swapon.8.gz /usr/share/man/man2/swapon.2.gz [root@centos8 ~]# rpm -qf /usr/sbin/swapon util-linux-2.32.1-17.el8.x86_64 [root@centos8 ~]# rpm -qf /usr/sbin/swapoff util-linux-2.32.1-17.el8.x86_64
如果误删除了命令可以用dnf安装
[root@centos8 ~]# dnf install util-linux
三,查看swap当前的状态:
查看swap的空间,共4G
[root@centos8 ~]# free -m total used free shared buff/cache available Mem: 3757 1224 1080 20 1452 2270 Swap: 4047 0 4047
用swapon查看所属设备和大小:
#-v: --verbose 详尽模式
[root@centos8 ~]# swapon -v NAME TYPE SIZE USED PRIO /dev/dm-1 partition 4G 0B -2
四,临时关闭swap
1,查看swapoff的版本
[root@centos8 ~]# swapoff --version swapoff,来自 util-linux 2.32.1
2,关闭swap
#-a:all,禁用 /proc/swaps 中的所有交换区
[root@centos8 ~]# swapoff -a
3,检查效果 :
[root@centos8 ~]# free -m total used free shared buff/cache available Mem: 3757 1221 1083 20 1451 2273 Swap: 0 0 0
swap的大小为0,已关闭
4,用swapon检查:
[root@centos8 ~]# swapon -v
输出为空,表示swap已关闭
五,临时关闭swap后启用swap
1,查看swapon的版本
[root@centos8 ~]# swapon --version swapon,来自 util-linux 2.32.1
2,启用 swap
#-a:--all 启用 /etc/fstab 中的所有交换区
[root@centos8 ~]# swapon -a
[root@centos8 ~]# free -m total used free shared buff/cache available Mem: 3757 1225 1079 20 1452 2269 Swap: 4047 0 4047
可以看到swap的空间显示为4G
用swapon -v查看
[root@centos8 ~]# swapon -v NAME TYPE SIZE USED PRIO /dev/dm-1 partition 4G 0B -2
六,永久关闭swap
查看/etc/fstab
[root@centos8 ~]# 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
重启机器
[root@centos8 ~]# systemctl reboot
再用free -m检查一下
[liuhongdi@centos8 ~]$ free -m total used free shared buff/cache available Mem: 3757 1127 1906 17 722 2370 Swap: 0 0 0
七,查看linux的版本:
[liuhongdi@centos8 ~]$ cat /etc/redhat-release CentOS Linux release 8.1.1911 (Core)