Mac无法手动关闭虚拟内存,需通过终端禁用dynamic_pager服务、删除现存swapfile并锁定目录;操作前须确认“已使用的交换文件”低于100MB或Pages out为0,且内存≥32GB,否则可能导致系统崩溃。

Mac电脑无法像Windows那样在系统设置里手动取消虚拟内存交换文件,因为macOS采用全自动动态分页机制,swapfile由内核自主创建与管理;你真正要做的,是停用动态分页服务、清除现存文件,并阻止其重建——整个过程需终端操作,且必须满足内存充足这一前提条件。
确认当前交换使用状态
这一步不能跳过。如果系统根本没用swap,后续所有操作都属冗余,还可能引发误判。打开“活动监视器”→切换到“内存”标签页→滚动到底部,查看“已使用的交换文件”数值。若长期稳定在100MB以下,说明物理内存足够,可直接跳过禁用步骤,仅清理残留即可。
更精准的验证方式:打开终端,依次执行以下三条命令:
vm_stat | grep 'Pages out' → 若输出为 Pages out: 0,则无页面换出
sysctl vm.swapusage → 若返回 used = 0.00M,表示当前无活跃交换
ls -lh /private/var/vm/swapfile* → 若提示 “No such file or directory”,说明目录干净
停用动态分页服务(永久禁用)
此操作将彻底关闭 macOS 的 swapfile 生成能力,系统重启后不再创建任何 swapfile*。但【仅适用于内存 ≥32GB 且不运行 Final Cut Pro、Docker、大型 IDE 等内存密集型软件的用户】。内存不足时强行禁用,会导致应用强制退出或系统冻结。
第一步:打开终端,粘贴并执行命令:
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
第二步:输入当前管理员密码(键盘无任何显示,输完直接回车)
第三步:立即删除所有现存交换文件:
sudo rm -f /private/var/vm/swapfile*
第四步:重启 Mac。重启后执行 sysctl vm.swapusage,应返回 used = 0.00M;同时检查 /private/var/vm/ 目录,应为空或仅剩 sleepimage(该文件与swap无关,不可删)
手动清理残留并锁定目录(防重建)
某些异常断电或内核崩溃后,系统可能遗留 swapfile* 或 core_* 文件,它们不被 dynamic_pager 管理,但会持续占用磁盘空间。删除后,还可通过创建同名空目录阻断系统重建逻辑。
方法一:纯清理
打开终端 → 执行 sudo rm -f /private/var/vm/swapfile* → 再执行 sudo rm -f /private/var/vm/core_* → 最后 ls -lh /private/var/vm/ 确认无 swapfile 开头的条目
方法二:清理 + 锁定(推荐用于反复生成 swapfile 的老旧机型)
先完成上述清理 → 然后执行:
cd /private/var/vm/
sudo mkdir swapfile0 swapfile1 swapfile2 swapfile3 swapfile4 swapfile5
注意:【mkdir 创建的是目录,不是文件;系统尝试写入 swapfile0 时会因路径已存在目录而失败,从而放弃重建】
验证禁用是否生效
重启后,打开终端,一次性执行三道验证命令:
sysctl vm.swapusage → 输出中 used 值必须为 0.00M
vm_stat | grep 'Pageouts' → 输出应为 Pageouts: 0
ls -A /private/var/vm/ | grep swapfile → 无任何返回即成功

















