centos

CentOS Swap清理方法有哪些

小樊
39
2025-07-10 12:39:03
栏目: 智能运维

在CentOS系统中,清理Swap分区可以通过以下几种方法进行:

  1. 关闭并重新启用Swap分区

    • 关闭所有Swap分区:
      sudo swapoff -a
      
    • 等待一段时间,让系统将内存中的数据写回磁盘:
      sleep 10
      
    • 重新启用Swap分区:
      sudo swapon -a
      
    • 验证Swap分区是否已清空:
      free -h
      
  2. 删除并重新创建Swap分区(适用于LVM管理磁盘的场景)

    • 查看当前Swap分区信息:
      sudo lvdisplay
      
    • 删除Swap分区:
      sudo lvremove /dev/mapper/vg_hostname-lv_swap
      
    • 创建新的Swap分区(需要根据实际情况调整大小):
      sudo lvcreate -L 1G -n lv_swap vg_hostname
      
    • 格式化新的Swap分区为Swap格式:
      sudo mkswap /dev/mapper/vg_hostname-lv_swap
      
    • 重新启用Swap分区:
      sudo swapon /dev/mapper/vg_hostname-lv_swap
      
    • 验证Swap分区是否已重新启用:
      free -h
      
  3. 调整Swappiness参数

    • 临时调整Swappiness参数:
      sudo sysctl vm.swappiness=10
      
    • 永久调整Swappiness参数,需要将设置写入/etc/sysctl.conf文件:
      echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
      sudo sysctl -p
      
  4. 清理缓存和页面缓存

    • 清理页面缓存和dentries/inodes缓存:
      sudo echo 3 | sudo tee /proc/sys/vm/drop_caches
      
    • 验证内存是否已释放:
      free -h
      
  5. 删除Swap分区(高级操作)

    • 关闭并禁用Swap分区:
      sudo swapoff -a
      
    • 禁用Swap分区,防止重启后自动启用:
      sudo sed -i '/swap/s/defaults/disabled/' /etc/fstab
      
    • 删除Swap分区:
      sudo lvremove /dev/mapper/centos-swap
      
    • 清理系统启动相关配置文件里的Swap部分:
      • 修改/etc/fstab文件,注释或删除掉Swap分区挂载设置:
        sudo sed -i '/ swap /s/defaults/disabled/' /etc/fstab
        
      • 清理/boot/grub2/grub.cfg/etc/default/grub里的Swap配置:
        sudo sed -i '/ swap /d' /boot/grub2/grub.cfg
        sudo sed -i '/ GRUB_CMDLINE_LINUX /s/rd.lvm.lv=centos/root rd.lvm.lv=centos/ swap /' /etc/default/grub
        sudo grub2-mkconfig -o /boot/grub2/grub.cfg
        

在执行上述操作之前,请确保你有足够的物理内存来支持这些操作,否则可能会导致系统出现OOM(Out of Memory)错误,从而随机杀死进程。此外,对于使用LVM管理磁盘的系统,操作可能会更加复杂,需要谨慎操作以避免数据丢失。

0
看了该问题的人还看了