Levo 指南 · 内存、CPU 和 GPU

“您的系统已用尽应用程序内存”:该怎么办

这条提示说明内存和交换都满了。在对话框中选择“强制退出”,选出占内存最多的 App(macOS 会列出它们及大小),把它退出。然后弄清它为什么变大,因为如果某个 App 在泄漏内存,这种情况还会再发生。

Levo 的 Processes 列表,列出占内存最多的进程、智能体给出的原因和 Quit 按钮
常见元凶如何识别解决办法
内存泄漏的 App某个进程占到几十 GB退出它,更新它,每天重启一次
开了很多标签页的浏览器有很多辅助进程关闭标签页,使用标签页休眠
虚拟机或 Docker一个又大又稳定的进程调低它分配到的内存
开发服务器、构建守护进程Node、Java、Gradle,运行时间很长退出闲置的那些
本地 AI 模型一个与模型大小相当的进程换一个更小的模型,或闲置时退出它

当下该怎么做

  1. 在对话框里,列表按内存给 App 排序。选中最大的那个,点击强制退出。该 App 中未保存的工作会丢失,所以如果你还能切换到它,先保存。
  2. 如果对话框没有出现,按 ⌥⌘⎋ 打开“强制退出应用程序”。
  3. 如果 Mac 卡死了,等一分钟。交换释放后 macOS 可能会恢复。万不得已时,按住电源按钮,并做好丢失未保存工作的准备。
  4. 恢复之后,打开活动监视器 › 内存,按内存排序。记下是什么变大了。

找出元凶,避免再次发生

看一下已用交换和“内存”列。某个进程比其余的大得多,就是内存泄漏或失控的任务。常见原因有:浏览器里跑着很重的网页、一个几周没重启的 App、模拟器、以及占着缓存不放的构建工具。把它退出,检查是否有更新,然后重启它。如果几小时内又变大,说明这个 App 有 bug:换旧版本或其他替代品。

ps -Ao pid,rss,etime,comm -m | head -n 10
sysctl vm.swapusage

第一条命令会列出最大的十个进程,以及每个进程已运行的时间(etime)。又大又很老的都值得怀疑。

还要检查磁盘剩余空间。交换需要 SSD 上的空间,磁盘快满时更容易出现这条提示。参见内存与储存空间。

如何预防

恢复后检查数字

Mac 恢复响应之后,几条命令就能告诉你发生了什么。马上运行,先别把东西全部重新打开:

memory_pressure
sysctl vm.swapusage
vm_stat | grep -E "Pageouts|Swapouts"
top -o mem -l 2 -n 8 | tail -n 12

如果只开了几个 App,交换却仍有几十 GB,说明仍有东西在泄漏。重启 Mac 是合理的下一步,比去追查一个幽灵花的时间少。

如果它总是回来

  1. 记下前几次对话框点名的是哪个 App。反复出现的就是答案。
  2. 更新那个 App 和 macOS。内存泄漏常常会在小版本更新中修复。
  3. 在系统设置 › 通用 › 登录项与扩展中检查登录时运行了什么,移除不需要的。
  4. 在一小时的正常工作中观察活动监视器的“内存”列,看哪个进程在稳步攀升。
  5. 看看磁盘空间。剩余不到约 10% 时,交换会吃力,对话框也会更早出现。

如果某个重任务每次都会触发它,比如大型视频导出或大型构建,说明这项工作需要的内存超过了这台 Mac 所有的。为这项任务关掉其他所有东西,或者把它拆成更小的部分。

Levo 怎么做

Levo 的内存阈值会在这个对话框出现之前提醒你。当压力在你设定的时间内一直处于 Warning 或 Critical 时,你会收到通知,弹出窗口里的 Processes 列表已经显示出是什么占着内存。每一行都有你自己的 AI 智能体给出的判断,比如“一个构建守护进程闲置了几个小时”,以及一个 Quit 按钮。

点击 Free memory 退出智能体标为安全的那些,或者自己退出一个。如果某个进程退不出去,Levo 询问之后,⌥⌘Q 会强制退出它。Levo 绝不会退出 WindowServer、访达或程序坞这类系统进程,交换交给 macOS 处理。详情见帮助文章。

常见问题

“您的系统已用尽应用程序内存”是什么意思?

内存和交换都满了,所以 macOS 无法再给任何 App 更多内存。它会列出占内存最多的 App,方便你强制退出其中一个。

我的工作会丢失吗?

如果你强制退出了有未保存更改的 App,会丢失。很多 App 会自动保存,所以请检查一下;如果还能切换到其他 App,退出前先保存。

为什么只开了几个 App 也会出现?

其中一个很可能在泄漏内存,或者某个辅助进程占用的内存比它窗口里显示的多得多。在活动监视器中按“内存”排序就能找到它。

磁盘满了会导致这个吗?

会。交换文件放在 SSD 上,所以磁盘快满时 macOS 没有空间可交换,这条提示会来得早得多。

出现这条提示后需要重启吗?

如果之后 Mac 很慢,需要。重启会清除内存泄漏和积累的交换。如果退出那个最大的 App 之后完全恢复了,就可以继续使用。

为什么对话框里显示的是我没在用的 App?

它是按占用的内存列出 App,而不是按你在用什么。后台和闲置的 App 也算在内,所以把不需要的退出。