Page Cache

目录标题

    • 🔍 一、Page Cache 是什么?
      • ✅ 定义
    • 🧠 二、为什么需要 Page Cache?
      • 📚 类比
      • 🚀 优势
    • 📂 三、Page Cache 如何工作?
      • 🟢 读文件(read)
      • 🟠 写文件(write)
    • 📊 四、如何查看 Page Cache 使用情况?
    • 🧽 五、如何释放 Page Cache?
      • ⚠️ 注意:释放 cache 会导致性能下降,建议只在特殊情况下使用(比如测试或紧急释放内存)
    • 💡 六、Page Cache 与 Buffer Cache 的区别?
    • ✅ 总结

页缓存(Page Cache)是 Linux 内核中用来缓存文件内容的机制,它能极大地提升文件读写性能,减少对磁盘的访问。


🔍 一、Page Cache 是什么?

✅ 定义

Page Cache 是 Linux 内存中的一部分,用来缓存从 磁盘读取的文件数据,或者待写入磁盘的数据。

  • 它以“页(Page)”为单位管理,一般是 4KB 大小。
  • 属于 Linux 的 统一缓冲高速缓存系统(Unified Buffer Cache)

🧠 二、为什么需要 Page Cache?

📚 类比

就像浏览器会缓存网页,避免每次都从服务器重新加载,Page Cache 让系统避免频繁地访问慢速磁盘。

🚀 优势

作用描述
提高文件访问速度读取频繁的文件可直接从内存中命中
减少磁盘 IO减少机械硬盘或 SSD 的读写次数,延长寿命
提升系统整体性能所有文件系统操作的响应变快

📂 三、Page Cache 如何工作?

🟢 读文件(read)

  1. 程序通过 read() 系统调用请求读取文件。

  2. 内核先查 Page Cache:

    • ✅ 如果命中缓存(缓存命中),直接从内存读取。
    • ❌ 如果未命中,从磁盘读取数据,并保存到 Page Cache
  3. 下次读取同样文件,就能命中缓存。

🟠 写文件(write)

  1. 程序调用 write(),写入文件时,不是立即写入磁盘
  2. 数据被写入 Page Cache 中的“脏页(Dirty Pages)”。
  3. 后续由 内核的回写线程(如 pdflush 或 kswapd),在合适时间将脏页刷入磁盘。

📊 四、如何查看 Page Cache 使用情况?

free -h

输出示例:

              total        used        free      shared  buff/cache   available
Mem:           32Gi        4Gi         2Gi        1Gi       26Gi        27Gi
  • buff/cache 就包含了 Page Cache(以及 Buffer Cache)。

🧽 五、如何释放 Page Cache?

⚠️ 注意:释放 cache 会导致性能下降,建议只在特殊情况下使用(比如测试或紧急释放内存)

# 只释放 page cache
echo 1 > /proc/sys/vm/drop_caches

# 释放 page cache + dentries 和 inodes
echo 3 > /proc/sys/vm/drop_caches

配合:

sync

可确保先将脏数据写入磁盘。


💡 六、Page Cache 与 Buffer Cache 的区别?

项目Page CacheBuffer Cache
缓存对象文件内容块设备元数据(如超级块、inode)
常见应用文件系统读取写入 ext 系统元数据、日志系统
内核策略更大更小(通常较少)

✅ 总结

特性描述
是什么用于缓存文件内容的内存
优点加快读写,减少磁盘压力
缓存方式自动管理、基于页(通常4KB)
清理方式可通过 echo 1/2/3 > drop_caches 手动清理
查看free -hvmstat -mcat /proc/meminfo

想看某个具体进程或容器用了多少 Page Cache,也可以进一步用 smempsscgroup memory.stat 来分析。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值