背景说明:
swap是linux系统中“交换分区”,类似于Window系统中的“虚拟内存”的概念,当物理内存(RAM)不足的时候,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况。在高负载情况下保障服务的连续性。但会带来如下问题
性能下降:过度依赖swap会导致系统性能显著降低,因为硬盘读写速度远低于内存(RAM)。
解决思路:
①按计算器进行内存的申请,切勿通过swap补充内存不足的情况
②不开swap分区,系统会根据运行情况关闭非常用的服务,来保障服务的连续性
③如果按要求申请了物理内存,还存在内存占满的问题,怀疑存在内存泄漏的可能,需要反馈研发介入分析。
以下为默认部署系统时开了swap,需手动关闭时的操作步骤
0.确认当前是标准分区还是LVM分区
df -h # 如果显示 /dev/mapper格式 则为LVM分区,如果显示 /dev/sda1 sda2 …… 则为标准分区
LVM逻辑分区执行df -h 时的显示如下内容
标准分区执行df -h 时的显示如下内容
根据实际分区情况选择如下两个方案进行swap的关闭操作。
1.LVM分区情况下的关闭方式
Centos7.9系统:
(1)确认分区
lsblk #确认是否有swap逻辑分区 (或用swapon -s命令)
fdisk -l # 确认swap 逻辑磁盘名称
(2)删除swap分区
swapoff /dev/mapper/centos-swap #禁用活动的swap
lvremove /dev/mapper/centos-swap #移除swap分区,按提示输入 y 确认删除
lvextend -l +100%FREE /dev/mapper/centos-root #将空闲的空间移动 100% 到根目录下
xfs_growfs /dev/mapper/centos-root #扩展xfs文件系统空间
lsblk #重启后检查swap是否已删除
(3) 移除 /etc/fstab 中的 Swap 配置
vi /etc/fstab # 按i进入编辑模式,在swap一行 前置加# 注释掉,按ESC退出编辑模式,然后:wq! 保存退出
systemctl daemon-reload 加载/etc/fstab
mount -a 测试挂载是否正常
(4)重启验证
reboot # 重启
lsblk #重启后检查swap是否已删除
龙蜥8.9系统关闭swap
(1)确认分区
lsblk #确认是否有swap逻辑分区
fdisk -l # 确认swap 逻辑磁盘名称(如图为 /dev/mapper/ao-swap)
(2)删除swap分区
swapoff /dev/mapper/ao-swap #停止swap活动
lvremove /dev/mapper/ao-swap #移除swap分区,按提示输入 y 确认删除
lvextend -l +100%FREE /dev/mapper/ao-root #将空闲的空间移动 100% 到根目录下
xfs_growfs /dev/mapper/ao-root #扩展xfs文件系统空间
lsblk #检查swap是否已删除且空间已转移到/ 根目录下
(3) 移除 /etc/fstab 中的 Swap 配置
vi /etc/fstab # 按i进入编辑模式,在swap一行 前置加# 注释掉,按ESC退出编辑模式,然后:wq! 保存退出
systemctl daemon-reload 加载/etc/fstab
mount -a 测试挂载是否正常
(4)重启验证
reboot # 重启
lsblk #重启后检查swap是否已删除
2.标准分区关闭方式:
一、删除swap 分区
1、查看 Swap 分区信息
swapon --show #确认swap活动
lsblk
2、关闭swap分区
XN替换为实际分区(如 /dev/sdb1)
swapoff /dev/sdXN
3、 移除 /etc/fstab 中的 Swap 配置
vi /etc/fstab # 按i进入编辑模式,在swap一行 前置加# 注释掉,按ESC退出编辑模式,然后:wq! 保存退出
reboot # 重启
lsblk #重启后检查swap是否已删除