Mac 运行缓慢?如何找到并终止占用资源的进程

Mac 变慢几乎总是因为某个或某几个进程占用了过多资源——CPU、内存或磁盘 I/O。解决方法听起来很简单:找到问题进程,然后杀掉它。但真正的难点在于:怎么确定该杀哪个,以及杀掉它到底是不是正确的做法。本文从快捷键到高级诊断工具,逐一介绍 macOS 上的所有方法,帮你让 Mac 恢复流畅。

快速结论

最快终止冻结应用:按 Cmd + Option + Esc 打开”强制退出应用程序”窗口,选中应用并点击”强制退出”。

查看 CPU/内存占用最高的进程:打开活动监视器(应用程序 → 实用工具),按 CPU 或内存排序。

终端杀进程:运行 kill 或 kill -9 (针对无响应进程)。按名称杀:killall <名称>。

深度诊断 + 实时图表:使用 ProcXray 同时监控 CPU、内存和磁盘 I/O,查看完整进程树,捕获活动监视器遗漏的短命进程。

为什么你的 Mac 会变慢?

macOS 在任意时刻都运行着数百个进程——系统守护进程、后台代理和用户应用同时争夺三类关键资源:

CPU —— 当某个进程独占 CPU 核心时,其他一切都会变慢。常见元凶包括失控的浏览器标签页、构建工具和 Spotlight 索引服务 mds_stores。

内存 (RAM) —— macOS 使用内存压缩和交换(swap)来应对内存压力,但一旦交换活动增加,磁盘 I/O 就会飙升,整个系统开始卡顿。根据 Apple 内存使用性能指南,当物理内存不足时 macOS 会先压缩内存页,只在万不得已时才写入磁盘——而这恰恰是你感受到明显变慢的时刻。

磁盘 I/O —— 大量读写数据的进程(Time Machine 备份、Xcode 索引、数据库引擎)可能占满存储带宽,即使 CPU 和内存看起来正常,应用也会出现彩虹转圈。

修复慢速 Mac 的关键是弄清瓶颈在哪类资源以及哪个进程是罪魁祸首。

方法一:键盘快捷键强制退出

macOS 上终止无响应应用最快的方法:

按 Cmd + Option + Esc(⌘ + ⌥ + Esc)。

在列表中选择无响应的应用。

点击强制退出。

局限性

只显示前台用户应用——看不到后台进程和守护进程。

没有任何资源使用信息——你只能猜哪个应用有问题。

无法终止系统进程或 root 拥有的进程。

这个方法适合你已经确定某个应用卡死、只需要快速关闭它的场景。

方法二:活动监视器

活动监视器是 Apple 内置的进程管理工具,显示所有运行中的进程及基本资源指标。

查找并终止进程

打开活动监视器(按 Cmd + Space,输入”活动监视器”,回车)。

点击 CPU 标签页,按 % CPU 降序排列,找到最耗资源的进程。

选中该进程,点击工具栏中的 X 按钮(停止)。

先选择”退出”。如果进程不停止,再点击”强制退出”。

检查内存压力

切换到内存标签页。底部的内存压力图表是关键信号:

绿色 —— 有充足的空闲内存。慢的原因可能是 CPU 或磁盘。

黄色 —— 内存有压力。macOS 正在压缩页面,性能可能下降。

红色 —— 严重内存压力。系统正在写入交换区。立即关闭大型应用。

检查磁盘活动

切换到磁盘标签页,查看哪些进程读写量最大。按写入的字节数排序,可以找到持续写入 SSD 的进程。

局限性

没有进程树视图——看不到父子关系,你可能杀掉了子进程,父进程却不断生成新的。

无法捕获短命进程——那些生成、消耗资源后在一秒内就退出的进程从来不会出现。

没有单个进程的实时趋势图——你看到的是快照,不是变化趋势。

无法查看环境变量或命令行参数。

方法三:终端命令

终端提供精确、可脚本化的进程控制能力。

查找资源占用高的进程

# 按 CPU 占用率排序实时显示(持续更新)

top -o cpu

# 一次性快照:所有进程按 CPU 降序

ps aux --sort=-%cpu | head -20

按 PID 终止进程

# 优雅终止(SIGTERM)—— 让进程有机会清理

kill 12345

# 强制终止(SIGKILL)—— 立即结束,无清理

kill -9 12345

按名称终止进程

# 终止所有匹配名称的进程

killall Safari

# 强制终止

killall -9 node

查找磁盘 I/O 过高的进程

# 实时监控每个进程的磁盘 I/O(需要 sudo)

sudo iotop

# 替代方案:使用 fs_usage 追踪文件系统调用

sudo fs_usage -f filesys | head -100

局限性

top 和 ps 显示的是快照——无法追踪趋势。

iotop 需要 sudo 权限,输出难以解读。

没有可视化进程树——需要借助 pstree 手动追踪关系。

刷新间隔之间,短命进程很容易被遗漏。

杀错 PID 可能导致关键系统服务崩溃。

方法四:ProcXray —— 深度进程诊断

当慢速 Mac 的原因并非某个明显失控的应用时,你需要更深层的可见性。ProcXray 在一个界面中提供 CPU、内存和磁盘 I/O 的实时监控,以及远超活动监视器和终端的诊断工具。

实时性能图表

ProcXray 顶部工具栏同时显示 CPU 使用率、内存压力和网络 I/O 的实时指标,选中进程后下方详情面板的 History 选项卡显示该进程的 CPU 和内存历史趋势图表。与活动监视器的快照视图不同,这些图表展示连续趋势——让你轻松发现内存持续攀升的进程(可能的内存泄漏)或 CPU 周期性飙升的进程。

你可以固定可疑进程并持续观察其资源趋势,这对诊断那些”打开活动监视器就消失”的间歇性卡顿至关重要。

进程树视图

切换到树视图,查看完整的父子层级关系。这很重要,因为:

像 xcodebuild 这样的构建工具可能生成数十个子进程(clang、ld、swift-frontend),它们共同占满 CPU。活动监视器将它们显示为毫无关联的独立条目。

失控的 Shell 脚本可能不断 fork 子进程。杀子进程毫无意义——你需要杀掉父进程。

浏览器(Chrome、Electron 应用)为每个标签页创建独立进程。树视图让你准确看到哪个标签页或扩展是罪魁祸首。

短命进程捕获

ProcXray 用绿色高亮标记新生成的进程,用红色标记刚退出的进程,即使进程已经终止也会保持可见。这能捕获那些编译器调用、Shell 辅助工具、定时任务等短命进程——它们可能消耗大量资源,却在活动监视器刷新之前就已经退出。

智能进程管理

右键点击任意进程即可执行操作:

终止 —— 优雅退出(SIGTERM),等同于 kill

暂停 —— 冻结进程而不杀死它(SIGSTOP)。适合暂时暂停资源大户,完成你的工作后再恢复。

发送 HUP/QUIT 信号 —— 重新加载配置或触发调试用的核心转储。

在 Finder 中显示 —— 跳转到可执行文件位置,确认进程的真实身份。

复制命令行 —— 查看进程启动时的完整参数。

诊断磁盘 I/O 瓶颈

打开任意进程的连接标签页,查看所有打开的文件描述符——该进程正在读写的每个文件。如果一个进程打开了数百个文件,它很可能就是磁盘 I/O 瓶颈的来源。这等同于运行 lsof -p ,但以结构化、可过滤的界面呈现。

环境变量检查

有时 Mac 变慢是因为配置错误——某个后台进程运行在调试模式、构建工具开启了详细日志、或者某个应用加载了巨大的插件目录。ProcXray 的环境标签页显示进程继承的每个环境变量,你可以一键导出为 JSON 做进一步分析。

系统化修复慢速 Mac 的流程

与其盲目杀进程,不如按以下诊断流程操作:

第一步:确定瓶颈类型

症状可能的瓶颈检查方法风扇狂转,应用卡顿CPU按 CPU 使用率排序——找超过 100% 的进程切换应用慢,出现彩虹转圈内存检查内存压力——黄色/红色说明有问题保存文件慢,应用短暂冻结磁盘 I/O检查各进程的磁盘读写速率什么都慢多重瓶颈三项全查——通常是级联效应

第二步:找到元凶

CPU 瓶颈:找 CPU 使用率超过 100% 的进程(多核 Mac 上,单个进程可达 200%、400% 等)。常见元凶:mds_stores、kernel_task、WindowServer、浏览器渲染进程。

内存瓶颈:按内存占用排序。检查总内存使用是否超过物理 RAM。关注内存持续增长的应用(可能是内存泄漏)。

磁盘 I/O 瓶颈:找写入量最高的进程。检查打开的文件描述符数量。常见元凶:backupd(Time Machine)、mds(Spotlight)、bird(iCloud 同步)。

第三步:杀、暂停还是深入调查?

场景操作建议冻结的应用,完全无响应强制退出(Cmd + Option + Esc 或 kill -9)后台进程临时占用过多 CPU暂停它,完成你的工作后再恢复不认识的进程先检查——查看代码签名、可执行文件路径和父进程,再决定是否终止系统进程(kernel_task、WindowServer)不要杀——调查根本原因(通常是散热或外设问题)父进程不断生成资源密集型子进程杀父进程,而不是子进程

对比:Mac 进程终止方法

能力强制退出 (⌘⌥⎋)活动监视器终端ProcXray终止用户应用支持支持支持支持终止后台进程不支持支持支持支持显示 CPU/内存/磁盘 I/O不支持分开的标签页top/iotop同时显示进程树视图不支持不支持有限支持捕获短命进程不支持不支持不支持支持暂停并恢复进程不支持不支持kill -STOP右键菜单检查环境变量不支持不支持macOS 无 /proc支持代码签名验证不支持不支持codesign 命令支持正则搜索进程不支持文本过滤grep内置支持

常见问题

活动监视器显示 CPU 不高,为什么 Mac 还是很慢?

瓶颈可能不在 CPU。检查内存压力(黄色或红色表示系统正在写入交换区)和磁盘 I/O(某个进程可能在大量读写 SSD)。另外,短命进程会在活动监视器刷新周期内完成并退出,根本不会显示出来。ProcXray 能捕获这些瞬态进程,即使它们已经退出也会保持可见。

强制杀掉进程安全吗?

强制终止(kill -9 或”强制退出”)发送 SIGKILL 信号,进程会被立即结束,没有机会保存数据或清理资源。对于浏览器、编辑器等用户应用,你可能丢失未保存的内容。对于系统进程,强制终止可能导致系统不稳定。务必先尝试优雅退出(kill 发送 SIGTERM),只在进程完全无响应时才使用强制终止。

如何阻止 kernel_task 占用大量 CPU?

kernel_task 是 macOS 在机器过热时用来限制 CPU 的机制。你不能也不应该杀掉它。应该解决根本原因:断开可能导致散热问题的外设、确保通风口未被遮挡、重置 SMC(Intel Mac),或检查是否有传感器故障。Apple 的支持文章 HT207359 详细介绍了这一问题。

macOS 上退出、强制退出和 Kill 有什么区别?

退出(Cmd + Q)—— 发送礼貌请求。应用可以提示你保存文件再关闭。

强制退出(Cmd + Option + Esc)—— 发送 SIGTERM。应用应该终止,但仍可以拒绝。

Kill(kill -9)—— 发送 SIGKILL。操作系统立即终止进程。进程无法捕获、阻止或忽略此信号。

如何找到占用磁盘 I/O 最多的进程?

在活动监视器中,切换到磁盘标签页,按写入的字节数排序。在终端中,运行 sudo iotop 实时监控每个进程的磁盘 I/O。在 ProcXray 中,选中进程后下方详情面板的 Open Files 选项卡可以查看该进程打开的所有文件描述符,精确了解它在读写哪些文件。

能一次性杀掉一个进程及其所有子进程吗?

在终端中,可以用 kill -- - 杀掉整个进程组,但获取 PGID 需要额外命令。ProcXray 的树视图直接展示完整层级——右键点击父进程终止它,macOS 会自动清理行为正常的孤儿子进程。

参考资料

Apple — 内存使用性能指南

Apple 支持 — 如果 kernel_task 占用了大量 Mac CPU

Apple 支持 — 如何使用活动监视器

macOS 进程监控完整指南

ProcXray vs 活动监视器:完整对比

下载 ProcXray → — 免费 14 天试用,支持 macOS Sonoma+,Apple Silicon 与 Intel。