首页主机资讯Linux Swap满了怎么清理

Linux Swap满了怎么清理

时间2025-10-22 22:42:03发布访客分类主机资讯浏览1395
导读:1. 查看Swap及内存使用情况 首先确认Swap空间的使用状态和内存占用情况,明确清理方向。常用命令: free -h:直观显示内存、Swap的总大小、已用空间及剩余空间; swapon --show:列出所有启用的Swap分区/文件及...

1. 查看Swap及内存使用情况
首先确认Swap空间的使用状态和内存占用情况,明确清理方向。常用命令:

  • free -h:直观显示内存、Swap的总大小、已用空间及剩余空间;
  • swapon --show:列出所有启用的Swap分区/文件及其大小、优先级;
  • top(按f键添加SWAP列)或ps aux --sort=-%mem | head:找出占用Swap最多的进程。

2. 临时释放Swap空间(快速缓解压力)
若需立即释放Swap,可通过“关闭-重新启用”Swap的方式,将Swap中的数据换回内存(需确保物理内存充足,否则可能导致OOM)。具体步骤:

  • 关闭所有Swapsudo swapoff -a(此命令会终止所有使用Swap的进程,建议在业务低峰期操作);
  • 重新启用Swapsudo swapon -a(恢复Swap启用状态);
  • 验证效果free -h查看Swap使用量是否归零。

3. 调整Swappiness参数(减少Swap使用倾向)
vm.swappiness参数控制内核使用Swap的积极性(默认值60,范围0-100)。降低该值可让系统更倾向于使用物理内存,减少Swap占用。操作方法:

  • 临时调整(立即生效):sudo sysctl vm.swappiness=10(例如设置为10,表示内存使用率达90%时才启用Swap);
  • 永久生效:将vm.swappiness=10添加到/etc/sysctl.conf文件末尾,执行sudo sysctl -p使配置生效。

4. 清理内存缓存(释放物理内存,间接减少Swap使用)
Linux系统会利用空闲内存作为缓存(如页面缓存、dentries/inodes缓存),可通过清理缓存释放物理内存,降低Swap使用概率。命令:
sudo sh -c 'sync; echo 3 > /proc/sys/vm/drop_caches'

  • sync:将缓存数据同步到磁盘,避免数据丢失;
  • echo 3:清理页面缓存、目录项缓存和inode缓存(echo 1仅清理inode,echo 2仅清理页面缓存)。

5. 终止占用Swap的高内存进程(解决根源问题)
若某进程长期占用大量Swap,需定位并终止该进程(谨慎操作,避免影响核心服务)。步骤:

  • 找出占用Swap最多的进程
    for file in /proc/*/status;
     do 
      awk '/VmSwap|Name/{
    printf $2 " " $3}
     END{
     print ""}
        ' $file;
         
    done | sort -k 2 -n -r | head -n 5
    
    该命令会列出Swap使用量前5的进程(显示进程名和Swap用量);
  • 终止进程:根据进程名或PID,执行sudo kill -9 < PID> -9表示强制终止)。

6. 扩展Swap空间(长期解决方案)
若物理内存不足且频繁出现Swap满的情况,需扩展Swap空间(优先选择Swap文件,操作更灵活)。常见方法:

  • 创建Swap文件(以2GB为例):
    sudo fallocate -l 2G /swapfile  # 创建2GB空文件
    sudo chmod 600 /swapfile        # 设置仅root可读写
    sudo mkswap /swapfile           # 格式化为Swap格式
    sudo swapon /swapfile           # 启用Swap文件
    
  • 永久生效:将/swapfile none swap sw 0 0添加到/etc/fstab文件中(重启后自动启用);
  • 扩展Swap分区(适用于LVM或物理分区):
    若使用LVM,可通过lvextend扩展逻辑卷,再用mkswap重新格式化;若为物理分区,需使用fdisk/parted调整分区大小,操作较复杂。

注意事项

  • 操作前务必备份重要数据,尤其是修改/etc/fstab或调整分区时;
  • 释放Swap前需确保物理内存充足(可通过free -h查看available内存),否则可能导致系统崩溃;
  • 若Swap频繁满,建议升级物理内存(从根本上解决问题)。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Linux Swap满了怎么清理
本文地址: https://pptw.com/jishu/732803.html
Swap空间不足时如何扩容 Linux如何设置Swap大小

游客 回复需填写必要信息