在 Linux 系统中,“缓存(Cache)”通常指的是用来加速数据访问、减少磁盘 I/O 的内存区域。它是 Linux 内存管理的重要组成部分,也是很多人看 free、top 命令时容易混淆的地方。
下面从几个层面给你讲清楚。
示例:
cat bigfile.txt
第一次慢,第二次快 → 因为已经在 Page Cache 中
查看方式:
free -h
total used free shared buff/cache available
Mem: 7.7G 2.1G 3.2G 120M 2.4G 5.0G
buff/cache 主要就是 Page Cache + Buffer简单区别(旧说法):
所以:
used 内存高 ≠ 内存不够
available 才是你能用的真实内存
不会。
Linux 设计上:
# 清理 pagecache
echo 1 > /proc/sys/vm/drop_caches
# 清理 dentries + inodes
echo 2 > /proc/sys/vm/drop_caches
# 全部清理
echo 3 > /proc/sys/vm/drop_caches
⚠️ 仅用于测试或排错
不一样:
Linux 缓存是利用空闲内存缓存磁盘数据,用来加速系统,不是“浪费内存”,而是“聪明地使用内存”。
如果你愿意,我也可以结合 free、top、vmstat 或你遇到的具体场景(比如服务器内存报警)来详细讲。