# 看内存压力，别看已用内存

> 内存占用高是 macOS 的正常设计，该看的是内存压力，再结合交换空间、压缩和换入，就能分清 Mac 是忙还是真的缺内存。

Published: 2026-08-11 | Updated: 2026-08-16

打开 活动监视器，点内存，大多数人第一眼看的就是
**已用内存**，这个数字几乎总是很高，一台 48 GB 的 Mac 开着浏览器和编辑器，轻松就能停在 40 GB，看起来像个要解决的问题。

其实很少是，macOS 会把买来的内存用满，因为空着的内存什么都不干，系统会用文件缓存把它填满，把最近用过的页留在里面，Mac 是不是真的缺内存，要看同一窗口底部的 **内存压力** 图，已用内存看着吓人的时候，这条图通常还是绿色。

**短答案：** 别管「已用内存」，看内存压力图，绿色就说明占用几乎满了也不是问题，没什么要修的，黄色或红色，下面三个计数器会告诉你为什么。

## 为什么「已用内存」是个错数字

macOS 把空闲内存当成浪费，最近读过的文件会留在内存里，因为从内存再读一次几乎不花钱，从磁盘再读一次就要花钱，应用一旦需要这块内存，缓存立刻就会被丢掉。

活动监视器 的内存标签里能看到拆分：

| 行 | 是什么 | 要不要担心 |
|---|---|---|
| 应用程序内存 | 应用已经分配并且正在用的页 | 只有某个应用明显离谱时才要 |
| 联动内存 | 内核不能换出的页 | 很少能动手处理 |
| 已压缩 | 为腾地方被压过、仍在内存里的页 | 一点是正常，很多才是信号 |
| 已缓存的文件 | 因为内存空着才留下的文件数据 | 从不，这是系统在干活 |

「已用内存」把其中好几项加在一起，包括随时会交回去的已缓存文件，所以一台健康的 Mac 上，这个数字会爬到接近满载，然后停在那里。

## 改看压力

内存压力图是 macOS 自己的判断，看现在能不能既满足分配又不伤性能：

- **绿色。** 请求从空闲或可回收内存里就能满足，已用内存不管多高，都不用管。
- **黄色。** 系统在靠压缩和驱逐跟上节奏，还在干活，但余量没了，再来一次大分配就要付出代价。
- **红色。** 分配在等内存先被腾出来，转圈和切应用变慢就是从这里来的。

命令行也能读：

```
memory_pressure
```

值得看的是最后一行：

```
System-wide memory free percentage: 74%
```

同一条命令还会打出推导这个百分比用到的原始计数器，包括页数和交换活动，想要证据而不是颜色的时候有用。

## 颜色背后的三个信号

压力变黄或变红时，三个数字能解释原因，要一起看，单独看任何一个都可能误导。

**已用交换空间。** 装不下才被写到磁盘上的内存。

```
sysctl vm.swapusage
```

```
vm.swapusage: total = 6144.00M  used = 4568.19M  free = 1575.81M  (encrypted)
```

交换空间不为零本身不是故障，macOS 即使内存宽裕，也会把很久没碰过的页换出去，在 SSD 上这么做的代价很小，真正的信号是交换空间又大、*又*在工作过程中持续增长。

**压缩活动。** 换到磁盘之前，macOS 会先在内存里压缩页。

```
vm_stat | grep -i compress
```

```
Pages stored in compressor:                  1945157.
Pages occupied by compressor:                 389440.
Decompressions:                             82848340.
Compressions:                              163587315.
```

用 Mac 的时候 Compressions 涨得很快，说明系统在抢空间，开机好几周的机器上，历史累计很大，单独看没有意义。

**负载下的换入。** 从磁盘把页读回来，就是感觉到的卡顿，一台同时在压缩、交换、换入的 Mac，就是典型的转圈状态。

## 找出是哪个应用

把 活动监视器 的内存标签按内存列排序，看最上面几行，不用看整张表，答案通常是下面四种之一：

- **开了很多标签的浏览器。** 每个渲染进程都是独立进程，浏览器的总量会摊到很多行上，Chrome 自己的任务管理器在「窗口」菜单下，能把内存归到单个标签和扩展，具体看
  [Chrome Helper 占用很高的 CPU 和内存](https://mole.fit/zh/blog/google-chrome-helper-high-cpu-mac)。
- **虚拟机或容器运行时。** 它们会提前预留内存，所以这个数字是配置选择，不是泄漏。
- **长时间开着的创作或开发应用。** 一次使用里内存稳步上涨、再也下不来，值得告诉开发者。
- **不认识的进程。** 杀掉之前先认出来，具体看
  [怎么排查不熟悉的进程](https://mole.fit/zh/blog/mac-processes-explained)。

退出应用就行，系统还撑得住的时候，强制退出一个只是占用大的进程，会丢掉没保存的工作，什么也换不来。

## 没用的做法

- **内存清理类应用。** 释放内存就是丢掉系统故意建好的缓存，占用条看着好看了，Mac 反而变慢，因为所有东西都要再读回来。
- **定时跑 `sudo purge`。** 它是为跑基准测试清文件缓存用的，同一个错误换成了命令，名字虽然像，但跟磁盘上的可清除空间没关系，具体看 [可清除空间](https://mole.fit/zh/blog/what-is-purgeable-space-on-mac)。
- **关掉马上又要打开的应用。** 哪些空闲应用该压缩，macOS 比一套固定流程判断得好。
- **关掉交换空间。** 交换空间是安全阀，拿掉之后被杀掉的就是应用。

## 什么时候答案真的是加内存

Apple Silicon 用的是统一内存，买完就不能加，所以值得先诊断，别靠猜。

日常工作里压力一直黄或红，一次使用中交换空间稳步上涨，占最多的又都是必须同时开着的东西，这时才该买更多内存，压力是绿色，只是被「已用内存」吓到，加内存感知不到任何变化。

## 监视器摆在哪

[Mole](https://mole.fit/) 把内存压力和 CPU、温度、以及驱动它们的进程放在一起看，慢的 Mac 能在一个地方看清原因，不用翻四个窗口，它把压力当成头条，因为这个数字能预测 Mac 用起来怎么样，也从来不会替你释放内存。

## 常见问题

### Mac 上已用内存高是坏事吗？

不是，用量高但压力绿，是 macOS 把可用内存拿来做缓存，这是设计如此，健康指标是压力，不是用量。

### 交换空间多大算太多？

没有跨机器都成立的阈值，看实际工作时的趋势，别看绝对值，压力黄或红的时候交换空间稳步上涨才是问题，开机好几周的机器上几个 GB 通常不是。

### 内存清理应用有用吗？

它们做了宣传里说的事，这才是问题，丢掉缓存会让空闲内存数字涨上去，接下来几分钟反而更慢，有东西需要的时候，macOS 自己就会回收内存。

### 压力是绿色，Mac 为什么还慢？

那就不是内存卡住了，去看 CPU、过热降频或磁盘，从
[Mac 为什么这么慢](https://mole.fit/zh/blog/why-is-my-mac-so-slow) 开始，那里按顺序过一遍瓶颈。

---

Canonical HTML page: https://mole.fit/zh/blog/mac-memory-pressure-explained
Blog index for agents: https://mole.fit/zh/blog/llms.txt
Site index for agents: https://mole.fit/llms.txt
