当Mac Swap使用量超10GB时,系统长期高内存压力,/private/var/vm/下堆积大量swapfile*文件,加剧SSD磨损;需先确认总大小≥10GB再手动删除,并禁用安全睡眠、重建动态分页策略以防止复发。

Mac当Swap使用量超过10GB时,系统已长期处于高内存压力状态,/private/var/vm/目录下会堆积大量swapfile*文件,持续进行磁盘读写,不仅拖慢响应速度,更会加速SSD磨损。这些交换文件本应随重启自动清除,但异常断电、强制关机或内核崩溃后极易残留,必须手动干预。
确认当前Swap占用真实大小
这一步不能跳过——系统“储存空间”面板常将swapfile错误归入“系统数据”,无法体现实际体积;直接查看vm目录才能获取准确字节数。
打开“访达”,按Command + Shift + G,输入/private/var/vm/并回车;若提示权限不足,点击“继续”并输入管理员密码授权访问;在窗口右上角搜索框中输入swapfile,选中所有匹配项(如swapfile0、swapfile1、swapfile2等)→右键→“显示简介”,观察“大小”总和是否确超10GB。
【关键前提】只有确认总和≥10GB才执行后续删除操作,否则可能误删正在使用的活跃交换文件导致系统瞬时卡死。
彻底清空Swap文件(终端强制删除)
方法一:一次性清除全部swapfile与core dump残留
打开“终端”,依次执行以下命令:
sudo rm -f /private/var/vm/swapfile*
sudo rm -f /private/var/vm/core_*
每行回车后需输入当前用户密码(输入时无可见字符),两次均成功执行后,再次进入/private/var/vm/目录,确认swapfile*与core_*文件已完全消失。
方法二:分步验证式清理(推荐给谨慎用户)
第一步:仅删除编号最大的swapfile(通常为最新生成、最可能冗余的)→sudo rm -f /private/var/vm/swapfile99
第二步:检查剩余swapfile数量与体积→ls -lh /private/var/vm/ | grep swapfile
第三步:若仍有多个且总和仍超8GB,再逐个删除swapfile98、swapfile97……直至剩余文件总和低于500MB。
注意:sleepimage文件不可删,它是休眠镜像,删除会导致合盖休眠失效;若它体积巨大(如16GB),应另用pmset禁用安全睡眠,而非在此处误操作。
阻止Swap再次膨胀至危险水平
第一步:立即禁用安全睡眠,消除sleepimage对磁盘的持续占位
在终端中执行:sudo pmset -a hibernatemode 0
第二步:同步删除现有sleepimage(此操作仅在hibernatemode设为0后安全)
执行:sudo rm /private/var/vm/sleepimage
第三步:强制系统重建最小化交换策略
执行:sudo launchctl unload /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist → sudo launchctl load /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
该操作会终止当前动态分页守护进程,并按新策略(无休眠、低交换优先级)重新加载,此后swapfile仅在物理内存真正耗尽时按需生成,且默认控制在512MB以内。

















