温馨提示×

ubuntu缓存和内存关系

小樊
66
2026-09-12 18:53:51
栏目: 智能运维

在 Ubuntu(以及所有 Linux 系统)中,**内存(Memory)和缓存(Cache)**是密切相关但容易混淆的概念。下面用通俗的方式说明它们之间的关系。


一、什么是内存(RAM)

内存是系统用来临时存放正在运行的程序和数据的硬件。
只要程序在运行,就会占用一部分内存。

查看内存使用:

free -h

或

top

二、Linux 中的“缓存”是什么

在 Ubuntu 中,你看到的“缓存(cache)”通常不是浏览器缓存,而是 Linux 文件系统的页缓存(Page Cache)。

页缓存(Page Cache)

当系统读取磁盘文件时:

  • 数据会先读到内存里
  • 下次再读同样文件,就直接从内存取(更快)

✅ 这部分内存是“借来的”
系统觉得:内存闲着也是闲着,不如拿来缓存文件。


三、内存和缓存的关系(重点)

1️⃣ 缓存是内存的一部分

总内存 = 已用内存 + 空闲内存 + 缓存/缓冲

在 free -h 中你会看到:

              total        used        free      shared  buff/cache   available
Mem:           7.7G        2.1G        1.2G        200M        4.4G        5.0G
  • used:程序真正用掉的
  • buff/cache:文件系统缓存
  • available:还能给程序用的(含可回收缓存)

2️⃣ 缓存可以被“随时收回”

当程序需要更多内存时:

  • 系统会自动释放缓存
  • 不会影响程序运行

✅ 所以:

缓存占用高 ≠ 内存不够


3️⃣ 为什么 Ubuntu 看起来“吃了很多内存”

新手常误以为:

“我才开个浏览器,怎么内存用了 80%?”

真相是:

  • 程序用 20%
  • 缓存用 60%
  • 系统只是在“高效利用内存”

四、常见误区

❌ 误区 1:缓存要手动清理

一般不需要。
强行清理反而降低性能:

# 不推荐随便用
sudo sync && sudo echo 3 > /proc/sys/vm/drop_caches

❌ 误区 2:free 很小就是内存不足

要看 available,不是 free


五、内存紧张时的表现

当 available 很小,系统会:

  1. 开始使用 Swap
  2. 系统变卡
  3. 可能触发 OOM(杀进程)

六、一句话总结

Ubuntu 的缓存是“用空闲内存换速度”,缓存属于内存,但可以随时还给程序用。

如果你愿意,我也可以:

  • 教你如何看 htop
  • 解释 Swap 和缓存的区别
  • 分析你机器的 free 输出

0 踩