温馨提示×

ubuntu缓存是什么原理

小樊
55
2026-09-06 23:33:13
栏目: 智能运维

在 Ubuntu(以及大多数 Linux 发行版)中,**“缓存”**通常主要指 Linux 内核的页缓存(Page Cache),也可能包括应用程序级缓存(如 apt 缓存、应用自身缓存)。下面从原理层面解释几种常见的 Ubuntu 缓存。


一、Linux 内核缓存(最核心)

1. 页缓存(Page Cache)

原理:

  • 当程序读取/写入磁盘文件时,Linux 不会每次都直接访问硬盘
  • 内核会把文件数据暂存在内存中(RAM)
  • 这部分内存就是 Page Cache

示例:

cat bigfile.txt

第一次读:从磁盘读
第二次读:直接从内存缓存读(极快)


2. 缓冲区缓存(Buffer Cache)

  • 用于缓存 块设备(磁盘)的元数据
  • 如文件系统 inode、目录结构
  • 现代 Linux 中,Buffer 和 Page Cache 已高度统一

查看方式:

free -h
  • buff/cache 就是缓存占用

3. 为什么“内存看起来用完了”?

Linux 设计理念:

空闲内存 = 浪费内存

所以:

  • 内存优先用于缓存
  • 当应用需要内存时,内核会自动回收缓存

✅ 缓存是可丢弃的,不影响系统安全


二、Ubuntu / apt 缓存

1. apt 软件包缓存

路径:

/var/cache/apt/archives/

原理:

  • 下载的 .deb 安装包会缓存
  • 再次安装或升级时无需重新下载

清理命令:

sudo apt clean
sudo apt autoclean

三、应用程序缓存

例如:

  • 浏览器缓存(Chrome/Firefox)
  • 桌面环境缓存(GNOME)
  • 编译缓存(ccache)

通常位于:

~/.cache/

四、交换缓存(Swap Cache)

  • 用于管理 Swap 空间
  • 减少不必要的磁盘交换

五、缓存的回收机制

1. 自动回收

  • 应用申请内存 → 内核释放缓存

2. 手动释放(一般不建议)

sudo sync
sudo echo 3 > /proc/sys/vm/drop_caches

六、总结一句话

Ubuntu 的缓存本质是“用内存换速度”:
把磁盘数据放进内存,加快访问,内存紧张时自动释放。

如果你是想了解:

  • 如何优化缓存
  • 为什么 Ubuntu 很卡
  • 服务器缓存调优

可以告诉我具体场景。

0 踩