温馨提示×

centos swap内存占用过高

小樊
62
2025-03-19 12:25:23
栏目: 智能运维

当CentOS系统的swap内存占用过高时,可能会导致系统性能下降,甚至出现卡顿或崩溃的情况。以下是一些解决CentOS swap内存占用过高的方法:

查看当前swap使用情况

  • 使用 free -h命令查看内存和swap的使用情况。

创建新的swap文件

  • 创建一个新的swap文件,例如:
sudo dd if=/dev/zero of=/swapfile bs=1M count=4096
  • 设置swap文件权限:
sudo chmod 600 /swapfile
  • 格式化swap文件为swap分区:
sudo mkswap /swapfile
  • 启用新的swap文件:
sudo swapon /swapfile
  • 确认swap变更:
free -h
  • 将swap文件添加到 /etc/fstab文件,以便在系统启动时自动启用:
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

调整swappiness参数

  • swappiness参数控制系统对swap分区的依赖程度。默认值为60,表示系统在物理内存使用超过40%时开始使用swap分区。可以临时或永久地调整这个值:

    • 临时调整(重启后失效):

      sudo sysctl vm.swappiness=10
      
    • 永久调整(重启后生效):

      echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
      

优化系统配置

  • 检查并结束占用大量内存的进程:
ps aux --sort -%mem | head
  • 清理缓存以释放内存:
sync; echo 3 | sudo tee /proc/sys/vm/drop_caches

扩展swap分区(适用于Swap分区)

  • 关闭当前swap:
sudo swapoff -a
  • 使用 fdiskpartedlvextend(如果使用LVM)调整分区大小。

  • 重新格式化swap分区:

sudo mkswap /dev/centos/swap
  • 重新启用swap分区:
sudo swapon /dev/centos/swap
  • 确认更改:
free -h

通过上述方法,可以有效地管理和优化CentOS系统的swap内存使用,确保系统的高效运行。

0