CentOS常见缓存机制概览
在CentOS中,缓存覆盖内核、文件系统、磁盘以及应用层多个层面,核心目标是用空闲内存加速I/O与网络访问,降低访问延迟与磁盘磨损。
一 内核与文件系统缓存
| 缓存层级/机制 | 作用 | 关键接口或位置 | 备注 |
|---|---|---|---|
| Page Cache(页面缓存) | 缓存文件数据,加速文件读写与mmap访问 | /proc/meminfo 的 Cached、free 的 cache |
读写命中直接从内存返回 |
| Buffer Cache(缓冲缓存) | 块设备的元数据/块读写缓冲 | free 的 buffers |
与 Page Cache 协同工作 |
| dentry / inode 缓存(dcache) | 缓存目录项与索引节点,加速路径解析与属性获取 | /proc/sys/vm/drop_caches 可清理 |
属于内核 slab 对象 |
| VFS 层缓存压力 | 控制 dentry/inode 回收倾向 | vm.vfs_cache_pressure |
值越低越倾向保留 |
| 脏页回写控制 | 决定“脏数据”何时写回磁盘 | vm.dirty_ratio、vm.dirty_background_ratio、vm.dirty_expire_centisecs、vm.dirty_writeback_centisecs |
平衡性能与数据安全 |
| 元数据挂载选项 | 减少元数据写入 | noatime、nodiratime |
降低写放大 |
| Swap 倾向 | 控制内存紧张时换出策略 | vm.swappiness(默认60) |
值越大越倾向使用 swap |
| 内存回收与清理 | 触发回收/清理缓存 | sync、echo 1/2/3 > /proc/sys/vm/drop_caches |
清理前应先 sync,避免数据丢失 |
| 持久化内存文件系统 | 以内存为存储介质 | tmpfs(如 /dev/shm) |
计入“已用内存”,通常不计入可回收 cache |
以上机制共同构成了 Linux(CentOS)内核与文件系统的缓存体系,是提升本地磁盘访问性能的关键路径。
二 磁盘与设备层缓存
mount -o remount,ro 或卸载来同步并清空日志(注意仅影响日志区,不等同于文件数据全部落盘)。三 网络与应用层缓存
systemd-resolved 或 nscd 管理缓存与 TTL 行为。proxy_cache、Apache 的 mod_cache,将热点内容缓存在内存/磁盘,降低后端压力与响应时延。四 监控与常用操作
free -m:关注 Mem: buff/cache 与 -/+ buffers/cache 两行,理解“被程序实际使用”和“可回收”的内存含义。cat /proc/meminfo:查看 Cached、Buffers、SReclaimable 等细项。sync:将脏页刷入磁盘(不回收缓存)。echo 1 > /proc/sys/vm/drop_caches:释放页缓存;echo 2:释放dentry/inode;echo 3:释放两者(执行前建议 sync)。mount -o remount,noatime /your/mount/pointecho 40 > /proc/sys/vm/dirty_ratio、echo 10 > /proc/sys/vm/dirty_background_ratioecho 50 > /proc/sys/vm/vfs_cache_pressureecho 10 > /proc/sys/vm/swappiness(示例值,按负载与场景评估)vmstat、iostat 等指标以评估效果。